Convertendo data com php

Hoje irei postar uma função que uso diariamente. Lembro quando não tinha pensado em nada ainda, como que era dificíl pegar uma data pradrão americano e converter para padrão português. Fazia esse processo para visualizar e para gravar no banco. Mas deixei um pouco a preguiça de lado e fiz uma função bem simples que faz essa conversão de datas.

Segue o codigo:

<?php
    /**
    * Função para converter data
    *
    * @param $data
    * @return $data
    */
    function converterData($data)
    {
        if(substr($data,2,1) == "/")
        {
            $dd = substr($data, 0,2);
            $mm = substr($data, 3,2);
            $aa = substr($data, 6,4);
            $time = substr($data, 11,8);
            if($time != "")
                $data = $aa."-".$mm."-".$dd." ".$time;
            else
                $data = $aa."-".$mm."-".$dd;
        }
        else
        {
            $dd = substr($data, 8,2);
            $mm = substr($data, 5,2);
            $aa = substr($data, 0,4);
            $time = substr($data, 11,8);
            if($time != "")
                $data = $dd."/".$mm."/".$aa." ".$time;
            else
                $data = $dd."/".$mm."/".$aa;
        }
        if($data=='//')
        {
            $data = '';
        }
        return $data;
    }

Simples não?
Vou mostrar como aplicar no seu codigo:

<?php
    $data = "2009-07-08";
    echo converterData($data);
    // saida
    08/07/2009

    $data = "08/07/2009";
    echo converterData($data);
    // saida
    2009-07-08
?>

Caso encontre algum erro ou tenha alguma sugestão de como poder melhorar, poste ai para conversar-mos um pouco. Abraços e até a proxima.

  • Trackback estão fechados
  • Comentários (1)
    • Jeferson
    • October 24th, 2010 12:45am

    Olá Marcelo,

    Você também pode utilizar a função strtotime para isso. Por ex:

    echo date(‘Y-m-d’, strtotime(’24/10/2010′)); // Output 2010-10-24

    ou

    echo date(‘d/m/Y’, strtotime(’2010-10-24′)); // Output 24/10/2010

    Abraços!