Neste artigo veremos como fazer uma data em português no PHP – utilizando a função strftime ou DateTime para atingir nosso objetivo.
Fala programador(a), tudo bem? Bora aprender mais sobre PHP e como criar datas no nosso padrão!
Temos duas abordagem para formatar datas em português e não precisamos utilizar a função date, como muitos pensam
Utilizando o DateTime
A maneira que eu mais gosto é utilizando um objeto chamado DateTime, assim não preciso alterar as configurações do PHP
Vamos ver na prática como funciona:
<?php $date = new DateTime(); $formatter = new IntlDateFormatter( 'pt_BR', IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'America/Sao_Paulo', IntlDateFormatter::GREGORIAN ); echo $formatter->format($date);
Aqui instanciamos o objeto DateTime na variável date, depois instanciamos um outro objeto IntlDateFormatter que será o formatador, ou seja, onde vamos configurar como nossa data aparecerá
Pontos chaves são a linguagem pt_BR, timezone como America/Sao_Paulo e também o calendário gregoriano
A saída é:
sexta-feira, 8 de maio de 2020
Claro que isso é baseado na data que estou escrevendo o artigo, você pode manipular o DateTime para colocar a data que necessita e depois formatar
Por exemplo:
$date2 = new DateTime('2020-09-08');
Aí vai gerar a nova data como ano-mês-dia
Utilizando strftime
Não gosto muito dessa abordagem porque você altera o locale diretamente do PHP, mas funciona também
Aqui você vai alterar também a timezone default, o que pode acontecer é o seu servidor ficar em outra timezone e gerar alguma instabilidade no seu software
Veja um exemplo:
setlocale(LC_TIME, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese'); date_default_timezone_set('America/Sao_Paulo'); echo strftime('%A, %d de %B de %Y', strtotime('today'));
Aqui da mesma forma, definimos o locale para pt_BR e também a timezone para America/Sao_Paulo
A diferença é que a data foi passada via strtotime em vez do objeto DateTime
E também pré formatada em uma string, o resultado será este:
sexta, 08 de maio de 2020
A formatação da string pode ser vista em detalhes como funciona aqui
Conclusão
Neste artigo vimos gerar uma data em português no PHP
Nós utilizamos duas abordagens, uma orientada a objetos com o DateTime e outra com o método strftime, onde alteramos as configs do PHP
As duas atingem um resultado satisfatório, porém a primeira é mais indicada por não alterar nenhuma configuração
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
Gostei! Me ajudou muito. Poderia atualizar o post e acrescentar que IntlDateFormatter() pode estar desabilitado no php.ini. Vlw!!!