quarta-feira, 8 de julho de 2009

Conversão de Data em PHP


Para fazer uma conversão automática, é importante saber quais os parâmetros passados, assim fazer a conversão tanto no padrão americano yyyy-mm-dd ou no padrão brasileiro dd/mm/yyyy.
Eis a seguinte Classe que faz esta conversão:

    /**
    * Description of Ferramenta
    *
    * @author clovesjunior
    */
    class Ferramenta {
    /**
    * Método Estático para Conversão de Data Padrão: (Americano - Brasileiro)
    * ou (Brasileiro - Americano) somente com o tipo de data que for inserido.
    * @param string $data_s
    * @return strin $data
    */
    public static function converteData($data_s){
    $data = explode('/',$data_s);
    if($data[0]!=$data_s){
    $date=$data[2].'-'.$data[1].'-'.$data[0];
    if(!eregi("^[0-9]{4}-([0-1]{1})([0-9]{1})-([0-3]{1})([0-9]{1})$", $date)){
    throw new Exception("Data Inválida!");
    }
    }else{
    $data = explode('-',$data_s);
    if(is_array($data)){
    $date=$data[2].'/'.$data[1].'/'.$data[0];
    if(!eregi("^([0-3]{1})([0-9]{1})/([0-1]{1})([0-9]{1})/[0-9]{4}$", $date)){
    throw new Exception("Data Inválida!");
    }
    }
    }
    return $date;
    }

    }

para efetuar a conversão é somente chamar o método estático da classe Ferramenta, da seguinte forma:

try{
echo Ferramenta::converteData('12/33/2000');
}catch(Exception $erro){
echo $erro;
}

Lógico que deve ser feitas algumas melhorias, assim para fazer a verificação de dias, meses e anos válidos, etc.
Espero que tenham gostado da implementação!

Nenhum comentário:

Postar um comentário

Deixe seu comentário ou dúvida aqui, vou responder o mais rápido possível!