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.

<?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

Esta entrada foi publicada em Data e hora e marcada com a tag . Adicione o link permanente aos seus favoritos.

13 pessoas já comentaram! Tá esperando o quê?

  1.  

    Ah, essa eu jah conhecia…

    =]

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
  2.  
    Xorna disse:

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

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
  3.  
    Talita disse:

    Oie Rafa,

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

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.6 no Linux Linux
  4.  
    Jason disse:

    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

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
  5.  
    admin disse:

    Vai dizer, né Jason?

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

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
  6.  
    Jason disse:

    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

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows XP
  7.  
    Prinity disse:

    Esquece… rsrs

    Já apareceu :D

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.9 no Windows Windows 2000
  8.  
    viConcursos disse:

    muito bom esse artigo parabens viu.. me ajudou muito..

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.11 no Windows Windows XP
  9.  
    edyd disse:

    nao funcionou aqui

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.13 no Ubuntu Linux Ubuntu Linux
  10.  

    Muito bom mostrou de forma simplificada e resolve bem!!

    Utilizando Safari Safari 531.9 no Mac OS X Mac OS X 10.6
  11.  
    Jefferson Romano disse:

    Me ajudou bastante esse seu post. Eu sabia que tinha que ter uma forma de mudar mas não sabia que tinha que usar a função strftime() para imprimir os resultados de acordo com a localidade.

    Apanhei nisso hj viu.. pense.

    Vlw

    Utilizando Mozilla Firefox Mozilla Firefox 7.0.1 no Windows Windows 7
  12.  
    Jefferson Romano disse:

    Seu botão do Google+ num ta funfando. não consegui dar um up.

    Utilizando Mozilla Firefox Mozilla Firefox 7.0.1 no Windows Windows 7
  13.  
    abymael disse:

    muito bom!

    Utilizando Mozilla Firefox Mozilla Firefox 9.0 no Windows Windows XP

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">