PHP – Exibindo datas do BD no padrão dia/mês/ano

Olá pessoal, tudo bem?

Vou escrever agora sobre algo muito simples que faz todo mundo que tá começando com o PHP, perder um tempinho. O post de hoje é sobre a exibição de datas no php.

Mysql
O “problema” da exibição de datas começa no banco de dados.  Isso acontece pois assim como toda linguagem de programação, o mysql utiliza os padrões americanos de data (Y-m-d), e muitas vezes quando uma data é armazenada nos registros, ao exibi-las ela fica com este padrão.
Exemplo: Hoje é 2011-04-19.

No Brasil e alguns outros países, o padrão de data é o oposto do americano.
Exemplo: Hoje é 19/04/2011.

OK, já entendi isso, mas como faço para mostrar as datas neste padrão?

Para mostrar as datas no padrão “brasileiro”, é muito simples, basta utilizarmos a função date() e strtotime().

Exemplos:
Data vinda do banco de dados, sem tratamento:
<?php echo $row_noticia[data]; ?>
Resultado: 2011-04-19

Data vinda do banco de dados, com tratamento:
<?php echo date(“d/m/Y”, strtotime($row_noticia[data])); ?>
Resultado: 19/04/2011

Explicando a função:
Após o echo, dizemos que o php mostrará um dado do tipo date, no formato d/m/Y (dia, mês e ano completo). Após isso, utilizamos a função strtotime para transformar o dado vindo do bd para o formato de data.

Feito isso, é só atualizar a página e ver a data no padrão correto.
alterada!

15 comentários sobre “PHP – Exibindo datas do BD no padrão dia/mês/ano

  1. Muito obrigado! Post claro e objetivo.

  2. Oi Marcel, era disso mesmo que eu precisava!
    Testei o codigo e funcionou, só tem um item que ele não preencheu, os segundos.Exemplo minha data está assim: 2011-10-04 09:02:43 e ele retornou assim: 04/10/2011 09:02:00. No lugar dos segundos ele veio zerado.O que fazer pra ele mostar os segundos?

    Valeu!

    • Olá Leonardo, obrigado por seu comentário.

      Pode por favor, postar o seu código aqui? Provavelmente deve ser algum erro ao setar o o date(“d/m/Y H:i:s”).
      Se der, manda o trecho do código, que a gente dá uma olhada juntos!

      Abraços

    • No meu caso eu estava pegando os dados do banco com data e hora utilizei assim o meu código, deve te ajudar
      $dt = date(“d/m/Y H:i:s”, strtotime($_SESSION[‘ultimo_acesso’]));
      echo $dt;

  3. Oi, Marcel, obrigado pela dica.

  4. Bahhh….Show de bola!!
    Procurei em vários locais e sempre dava algum erro.
    Tua explicação tá simples e objetiva.

    Parabéns!!

  5. Claro e objetivo, já tive que montar uma função para esta finalidade. Muito obrigado.

  6. Show de bola….

    De costume utilizo a mesma ideia só que de outra forma,
    quando se trata somente de data, utilizo o seguinte código:

    echo implode(“/”, array_reverse(explode(“-“, ‘2008-02-25’)));

    Tem alguma diferença de certo ou errado? tempo de execução?
    ou algo relacionado a boas práticas de programação, para ter utilizado a função date()?

    Grande abraço e belo tópico!

    • Só um alerta, essa função não é recomendada para usar em data de nascimento, pois o “strtotime” usa o timestamp que é a quantidade de segundos desde de 01/01/1970, ou seja, qualquer data antes disso pode não ser convertida em alguns casos.

  7. Muito, bom! Obrigado pela dica clara e objetiva

  8. Valeu pela dica, muito bom!

  9. Erick Henrique

    Tenho que substituir algo nesse código ? Digo, possuo uma pagina que contrói um email a ser enviado, e possui uma linha assim: Contrato válido até: ‘.trim($Data_Vencimento).’, Pedido numero: ‘.trim($pedido).’ .. essa variável $Data_vencimento está em padrão americano, queria exibi-la em padrao brasileiro, possuo tambem uma declaração deste tipo: $Data_Vencimento=$dadosxx[“datavenc”]; para com que o valor na coluna “datavenc” do banco seja inserido na variavel $Data_Vencimento .. No caso eu teria de receber o valor do banco na variavel, e inserir este valor novamente na variavel no padrao novo com o comando dessa postagem? Daria certo isso? Desculpe a confusao na explicação, espero que tenha dado pra entender ..

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s