Dec-07 21

Gravar ou exibir datas em português com o PHP

Enviado por: Thales RB. .     1 comentário.     Categorias: Aprendendo PHP, Diversos, PHP

No post anterior sobre data eu mostrei como salvar uma data, mas daquela maneira ela fica em ingles, isso fica visivel se usar o F ou o D que exibem o nome do mês.

Mas existe uma maneira de gravar as datas em pt-br para isso se usa o comando strftime ele permite formatar a data de acordo com as configurações locais.

Para definir o local do onde você está se usa o setlocale

[cod=''php"]setlocale(LC_ALL, “pt_BR”, “ptb”); //selecionar o local parapt-br[/code]

após ter definido o local que estamos, podemos usar o strftime, o seu uso é simples:

[cod=''php"] $formato = ‘%d-%B-%Y %H:%M:%S’;
$horario = strftime($formato);

echo $horario; [/code] ]

as formatações aceitas são:

  • %a - dia da semana abreviado de acordo com a localidade
  • %A - nome da semana completo de acordo com a localidade
  • %b - nome do mês abreviado de acordo com a localidade
  • %B - nome do mês completo de acordo com a localidade
  • %c - representação da data e hora preferida pela a localidade
  • %C - número do século (o ano dividido por 100 e truncado para um inteiro, de 00 até 99)
  • %d - dia do mês como um número decimal (de 01 até 31)
  • %D - mesmo que %m/%d/%y
  • %e - dia do mês como um número decimal, um simples dígito é precedido por espaço (de ‘ 1′ até ‘31′)
  • %g - como %G, mas sem o século.
  • %G - o 4-dígito do ano correspodendo as ISO week number (see %V). Este tem o mesmo formato e valor que %Y, exceto que se o ISO week number pertence ao prévio ou próximo ano, aquele ano é usado ao invés deste.
  • %h - mesmo que %b
  • %H - hora como um número decimal usando um relógio de 24-horas (de 00 até 23)
  • %I - hora como um número decimal usando um relógio de 12-hoas (de 01 até 12)
  • %j - dia do ano como número decimal (de 001 até 366)
  • %m - mês como número decimal (de 01 até 12)
  • %M - minuto como número decimal
  • %n - caracter novalinha
  • %p - um dos dois `am’ ou `pm’ de acordo com o valor da hora dada, ou as strings correspondentes para a localidade
  • %r - hora em a.m. e p.m. notação
  • %R - hora em notação de 24 horas
  • %S - segundo como um número decimal
  • %t - caracter tab
  • %T - hora corrente, igual a %H:%M:%S
  • %u - dia da semana como número decimal [1,7], com 1 representando Segunda-feira

Uma outra maneira de formatar a exibição da data é usando o substr, e também pode ser util para para ler a data salva e exibi-la em partes, isso pode ser usado para exibir ela em uma imagem(em um calendario como é aqui no site). Ex:

[cod=''php"]$data = ‘2010-08-28′;
$dia = substr($data, 8, 2);// 8 é o numero do primeiro caracter e ser lido e 2 é o numero de caracteres a ser mostrado

$mes = substr($data, 5, 2);
$ano = substr($data, 0, 4);
echo “$dia/$mes/$ano”;[/code]

com essa função, pode se montar um switch para exibir o mês com nome por extenso ex:

switch (substr($data, 5,2)) {
case '01':
echo 'Jan';
break;
case '02':
echo 'Fev';
break;
case '03':
echo 'Mar';
break;
case '04':
echo 'Abr';
break;
case '05':
echo 'Mai';
break;
case '06':
echo 'Jun';
break;
case '07':
echo 'Jul';
break;
case '08':
echo 'Ago';
break;
case '09':
echo 'Set';
break;
case '10':
echo 'Out';
break;
case '11':
echo 'Nov';
break;
case '12':
echo 'Dez';
break;
}

Acho que usar essa segunda maneira é melhor, principalmente se for preciso, fazer busca usando data, mas fica a criterio de cada um escolher a melhor opção =D

Compartilhe nos Sites Sociais: Adicionar esta notcia no Linkk Adicionar esta notcia no Rec6 Adicionar esta notcia no Ueba
Comment on June 30th, 2008.

setlocale(LC_ALL, “pt_BR”, “ptb”);

show de bola, funcionou perfeitamente sem precisar ficar utilizando funções. parabens, excelente dica.

Deixe um comentário

Os campos nome e e-mail são obrigatorios(o e-mail não será exibido), a URL é opcional.

Os comentários podem ter os seguintes comandos:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>