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ó”
Muito bom esse código..
Me ajudou muito!!!
Muito bom!
Que bom que lhes ajudei! 🙂
Muito bommm ….
Me ajudou pacas Rafa!
abcs
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?
Para isso, use
echo date('l, d de F de Y', strtotime($data));
Os parâmetros estão todos em http://www.php.net/manual/pt_BR/function.date.php
Seria assim :
Desculpe, estou começando a usar o PHP !!! Ainda estou iniciando na linguagem !
Obrigado
echo substr($data_cadastro, 8, 2) . '-'. substr($data_cadastro, 5, 2) . '-' . substr($data_cadastro, 0, 4);
Pois dessa forma só aparece — no campo data da consulta !
Isso significa que a variável $data_cadastro está vazia.
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
Será:
echo date(‘d-m-Y’, strtotime($data));
Certo mais dessa forma ele retorna a data 31-12-1969 que não é a que esta no banco
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);
Valeu, aqui funcionou beleza!
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.
Alybaba, você pode encapsular a conversão numa função, como em `convertToDabaseDate` e chamar para transformar cada uma das datas.
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
Agradeço a participação! Agora foi.
Opa, deixando meu thumbs up. Memoria falhou rs primeiro resultado do Google caiu aqui e ajudou. Valeu!
Thadeu, que ótimo que lhe ajudou.
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!
Jauber, tem total razão. Agradeço a correção.
[…] Outros métodos não menos eficiêntes, porem P.O.G. você confere aqui e aqui. […]
Beleza!Parabéns por compartilhar
grato pela visita, wilson.
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!!!
Muito obrigado amigo
Que bom ter ajudado, Jonatas.
Estava procurando algo do tipo e seu post foi muito importante para que eu implementasse pequeno ajusto no sistema que desenvolvi. Valeu.
Gostaria de saber como faço pra exibir a data registrada no banco de dados usando o input date, usei esse método e não funcionou
Oi, Arthur. Você precisa preencher um dos formatos válidos esperados no `input=date`. Verifique aqui: https://www.w3.org/TR/html-markup/input.date.html
Pesquisei na net tantas dicas, mas somente essa deu certo no meu codigo, pois a data ja estava inserida no banco… vlw ai amigo
Thank, you are at the top.
Muito obrigado !!
Ótimo post, me ajudou muito aqui no meu sistema.
Como faço um sistema de comentarios igual a esse?Obrigado
Waltino, grato pela participação. Este sistema de comentários é do WordPress, a plataforma de blog que eu utilizo e hospedo em meu servidor https://oservidor.com
filé, parabéns
Bacana!!!