Escrever data por extenso com php
O que mais vejo por aí são scripts monstruosos para se conseguir retornar a data por extenso para o usuário. É incrível a falta de coragem do pessoal em procurar novas alternativas para seus códigos, para que fiquem mais limpos, bonitinhos e tal.
Um exemplo que posso citar para justificar o que estou dizendo são dois links, neste o cara cria um script enorme, que logo como vamos ver, será colocado em desuso por nosso script milagroso. Agora esse vai além, o cara cria uma função para a mesma coisa que a anterior, escrever a data por extenso.
Agora vos apresento minha solução:
< ?php
setlocale(LC_ALL, 'portuguese', 'pt_BR', 'pt_br', 'ptb_BRA');
echo strftime("%A, %d de %B de %Y");
// Uma saída esperada é: terça-feira 29 de janeiro de 2008
?>
Juro pra você que é só isso que tem que fazer para se conseguir como resultado a data de hoje por extenso. Esqueça aqueles códigos enormes que você viu.
Locale é um conjunto de informações que define os formatos de número inteiros, monetários, tipo de caracteres, tempo, entre outros. Setlocale() serve para setar o locale que você quer usar no seu programa, como você pode ver alí, dou quatro referência de locales(portuguese, pt_BR, pt_br e ptb_BRA) para que ele não se perca e caso não haja o primeiro locale, ele parta para o próximo.
–edit–
Obrigado Aragão, pela dica.
01/31/2008 - 15:18
É interessante colocar também o padrão do Windows, para que fique multiplataforma o script, assim:
setlocale(LC_ALL, ‘pt_BR’, ‘ptb_BRA’);
01/31/2008 - 22:15
testado e aprovado!
formidavel isso cara.. 2 linhas que resolve tudo… bom mesmo. vlw.
02/23/2008 - 15:05
Imprecionante esse código ter só 2 linhas, testei e deu certo.
Minha área é layout, mas sei um pouco de programação, tenho que melhorar muito,
pois sou Web Development, tenho que elaborar códigos, e quanto menor melhor.
Vlw, pelo código, é muito útil.
12/23/2008 - 00:32
Na dreamhost da problema, pois o horário são 6 horas atrasado, daí se por exemplo já são 00:31 do dia 23, ele ainda mostra dia 22…
Tem como eu corrigir o horário, pra exibir a data corretamente?
Obrigado.
01/01/2009 - 02:17
Olá José, desculpe pela demora.
Você pode usar o strtotime()
< ?phpsetlocale(LC_ALL, 'portuguese', 'pt_BR', 'pt_br', 'ptb_BRA');
$data = strtotime('+ 6 hours');
echo strftime("%A, %d de %B de %Y", $data);
// Uma saída esperada é: terça-feira 29 de janeiro de 2008
?>
01/19/2009 - 17:36
Alguem me diz, oq é WEB DEVELOPMENT??
HAUIEIOAEjOJ@OJOI@Jeio@HUIhuid
01/28/2009 - 22:38
Acho que sua resposta esta aqui: http://en.wikipedia.org/wiki/Web_development