Categorias
PHP

Converter formato de data para o formato BR, em uma linha de código só

Vou pedir licença ao Frederico e também palpitar sobre a possibilidade de, em uma linha, converter o formato de data do banco (funciona para o MySQL e outros bancos) para o formato brasileiro em php.

$data = "2008-01-09 14:56:06";
echo date('d/m/Y H:i:s', strtotime($data)); // mostrará 09/01/2008 14:01:06.
echo date('d/m/Y', strtotime($data)); // mostrará 09/01/2008.

Update em 24/01/2023: Podemos utilizar também DateTimeImmutable:

php > $data = "2008-01-09 14:56:06";
php > echo (new \DateTimeImmutable($data))->format('d/m/Y H:i:s');
09/01/2008 14:56:06
php > echo (new \DateTimeImmutable($data))->format('d/m/Y');
09/01/2008

Simples assim. 🙂

Essa solução funciona para datas no formato yyyy-mm-dd hh:mm:ss e yyyy-mm-dd.

41 respostas em “Converter formato de data para o formato BR, em uma linha de código só”

E se eu desejar um formato “Segunda, 25 de setembro de 2009”, mais isso convertendo uma data de um registro do Banco de dados MySQL?

Muito bom o artigo… mais a minha dúvida é seguinte, em uma tela de consulta o campo data esta vindo 2010-09-07 como faço para vir 07-09-2010 ?

Obrigado

Este retorno está acontecendo por causa da sua versão do php. Neste caso você terá que fazer a conversão através de substring.

echo substr($data, 8, 2) . ‘-‘. substr($data, 5, 2) . ‘-‘ . substr($data, 0, 4);

Olá rafael,

Sou novo nessa área, e me desculpe a minha ignorância no assunto.

Tenho um cadastro de familia que tem pelo menos 3 datas (dn_pai, dn_mae, dn_filho1)

Gostaria de converter todos esses campos. Como posso fazer isso? E onde inserir essa linha de código?

Grato.

Uma ótima opção para pegar no banco e exibir a data em formato brasileiro, e funciona perfeitamente…

abra php

$sql_select = “SELECT * FROM tabela ORDER BY id DESC LIMIT 1,10”;
// Executa o Query
$sql_query = mysql_query($sql_select); // Cria um while para pegar as informações do BD
while($variavel = mysql_fetch_object($sql_query)):

feche o php

abra php echo date(‘d/m/Y’, strtotime($variavel->data)); feche php

abra php endwhile; feche php

espero que dessa vez funcione kkkkkk

Só uma correção no post, a conversão de hora, minuto e segundo deve ser h:i:s e não h:m:s, então:

mostrará 09/01/2008 14:01:06.

deveria ser:

mostrará 09/01/2008 14:56:06.

pois o ‘m’ neste caso é para mês.

Abraços, valeu muito!

Olá a todos…entrei aqui para agradecer a ajuda que este post me deu…estava com problemas em uma data que eu pegava de um xml criado através de um dataset em delphi, e o bendito vinha no formato americano e sem barras ou traços: 20151122. E não sabia como converter ela para o formato br, daí arrisquei como vc mostrou: date(‘d/m/Y’, strtotime($data)); e deu certo converteu para 22/11/2015 como eu precisava…Obrigado pela ajuda aew pessoal!!!

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.