Neste artigo veremos como fazer uma data em português no PHP – utilizando a função strftime ou DateTime para atingir nosso objetivo.

data em portugues com php capa

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

Subscribe
Notify of
guest

1 Comentário
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Eu sou

Gostei! Me ajudou muito. Poderia atualizar o post e acrescentar que IntlDateFormatter() pode estar desabilitado no php.ini. Vlw!!!