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.
<?php
setlocale(LC_ALL, NULL);
setlocale(LC_ALL, 'pt_BR');
print ucfirst(gmstrftime('%A'));
?>
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
<?php
print_r(localeconv());
?>
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