PHPit - PHP

"Agora, pois, permanecem a fé, a esperança, o amor, estes três; mas o maior destes é o amor." (I Coríntios 13:13)

Obtendo datas em Português

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.

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2.  
  3. setlocale(LC_ALL, NULL);
  4. setlocale(LC_ALL, 'pt_BR');
  5.  
  6. ?>
<?php

    setlocale
(LC_ALLNULL);
    
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

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2.  
  3.  
  4. ?>
<?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

Dim dim

 

Comentaí! (09)

Ah, essa eu jah conhecia...
=] Anderson Triacca em 18/11/2007 às 15:26 utilizando o Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
Mazá Rafa, show de bola cara, isso ajuda muito, evita gambiarras bizarras para tradução =) Xorna em 18/11/2007 às 17:12 utilizando o Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
Oie Rafa,

Mto bacana o artigo, com certeza é uma boa ajuda! Talita em 19/11/2007 às 14:18 utilizando o Mozilla Firefox Mozilla Firefox 2.0.0.6 no Linux Linux
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 Jason em 20/11/2007 às 07:30 utilizando o Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
Vai dizer, né Jason?

No Flash tu não consegue as datas em português! :P admin em 20/11/2007 às 08:22 utilizando o Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
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 Jason em 22/11/2007 às 07:30 utilizando o Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
Esquece... rsrs
Já apareceu :D Prinity em 22/11/2007 às 07:43 utilizando o Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows 2000
muito bom esse artigo parabens viu.. me ajudou muito.. viConcursos em 16/07/2009 às 17:52 utilizando o Mozilla Firefox Mozilla Firefox 3.0.11 no Windows Windows XP
nao funcionou aqui edyd em 31/08/2009 às 11:05 utilizando o Mozilla Firefox Mozilla Firefox 3.0.13 no Ubuntu Linux Ubuntu Linux
 

Comenta logo, pô!

* Todos os links inseridos nos comentários possuem rel="nofollow" para impedir com que crawlers considerem os mesmos como relevantes.
* Os e-mails não são divulgados.

Dados pessoais

Você é realmente um humano?

Finalmente, digite seu comentário :)

Caixinha de Sugestões

O que é isso? Aqui você pode simplesmente digitar uma sugestão (artigos, resenhas, melhorias, etc) sem precisar preencher longos formulários. Digite o que quiser na caixinha abaixo e eu lerei com o maior prazer! Se quiser se identificar, fique a vontade!

O PHPit é redigido e mantido por Rafael Jaques - Política de Privacidade.

XHTML/CSS desenvolvido por André Gazola.

PHPit 2007 - 2009 - Alguns direitos reservados.

Feeds ;)

Creative Commons License

PHPit por Rafael Jaques é licensiado sob a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.