BuscaPé, líder em comparação de preços na América Latina

PHPit

Pular navegação

Obtendo datas em Português

Enviado em 18/11/2007 às 15:02

Prefácio


Já é sabido que programadores tendem a fazer gambiarras na hora de traduzir certos termos de uma aplicação, tais como os dias da semana. Foi durante uma conversa com o meu amigo Xorna que eu percebi que muita gente não sabe obter as datas em português automaticamente. Alterando o local do PHP você pode adquirir as propriedades de determinado país. A função que precisaremos para realizar esta mágica é a setlocale().

Conceito


O código abaixo irá fazer com que as propriedades locais do sistema sejam alteradas para o formato brasileiro.

Em servidores configurados em formato brasileiro, ou seja, que já tem Brazilian Portuguese configurado no locale, apenas a linha 3 poderá ser suficiente.
Em servidores estrangeiros, talvez apenas a linha 4 seja suficiente.

Para deixar o código portável, utilizaremos os dois modos.

  1. <?php
  2.  
  3. setlocale(LC_ALL, NULL);
  4. setlocale(LC_ALL, 'pt_BR');
  5. print ucfirst(gmstrftime('%A'));
  6.  
  7. ?>


A função utilizada para puxar os dados da data é a gmstrftime() porque ela leva em consideração o local.
O retorno desta função é o dia da semana, por extenso, em português! :)

LC_ALL é uma constante que indica que as informações locais serão definidas em todas as instâncias. LC_ALL engloba LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC e LC_TIME.

Outras possibilidades com a alteração do local é obter dados monetários. A função localeconv() retorna uma array com as propriedades monetárias da região.

O retorno de

  1. <?php
  2.  
  3. print_r(localeconv());
  4.  
  5. ?>


será:

Array
(
[decimal_point] => ,
[thousands_sep] => .
[int_curr_symbol] => BRL
[currency_symbol] => R$
[mon_decimal_point] => ,
[mon_thousands_sep] => .
[positive_sign] =>
[negative_sign] => -
[int_frac_digits] => 2
[frac_digits] => 2
[p_cs_precedes] => 1
[p_sep_by_space] => 1
[n_cs_precedes] => 1
[n_sep_by_space] => 1
[p_sign_posn] => 3
[n_sign_posn] => 3
[grouping] => Array
(
[0] => 3
)

[mon_grouping] => Array
(
[0] => 3
)

)


Conclusão


É possível fazer muitas coisas alterando o local. No Manual do PHP você encontra outras utilizações para estas funções.

Lembrando sempre que é divertido brincar com as funções do PHP! :P

Um grande abraço e uma ótima semana a todos!
Fiquem com Deus!

Rafael Jaques

 

Comente (07)




Comentário #1
Autor: Anderson Triacca
Em: 18/11/2007 às 15:26

Ah, essa eu jah conhecia...
=]

Comentário #2
Autor: Xorna
Em: 18/11/2007 às 17:12

Mazá Rafa, show de bola cara, isso ajuda muito, evita gambiarras bizarras para tradução =)

Comentário #3
Autor: Talita
Em: 19/11/2007 às 14:18

Oie Rafa,

Mto bacana o artigo, com certeza é uma boa ajuda!

Comentário #4
Autor: Jason
Em: 20/11/2007 às 07:30

Muito bomm Jaques, to pensando até em entrar para o ramo do PHP =)

Gostei muito da descrição dos blogs la UAHiuahaIhaiuahia..
Vlw ae Jaques, abração

Comentário #5
Autor: admin
Em: 20/11/2007 às 08:22

Vai dizer, né Jason?

No Flash tu não consegue as datas em português! :P

Comentário #6
Autor: Jason
Em: 22/11/2007 às 07:30

trOpa de elite OssO durO de rOer...
pega um pega geral e tb pega vOcê!

' hOmens de pretO qual é sua MissãO?
- entrar nO Blog dO Jaques e Deixar os outros cOmentáriOs nO chãO.

' hOmens de pretO O que q vOcê Faz?
- eu tirO O tOpO deles pq O meu vale mais...

=))

FELIZ DIA DO MÚSICO

Comentário #7
Autor: Prinity
Em: 22/11/2007 às 07:43

Esquece... rsrs
Já apareceu :D

Artigos Recentes

Rafael Jaques - PHPit 2007
Site sob Creative Commons - Alguns direitos reservados

Assine o RSS do PHPit! :)
Saiba onde tem o melhor preço antes de comprar