Funções em PHP para converter data.
<?php
/********************************************
// Rodrigo oliveira. rodlps22@gmail.com
Formatos
dd - dia
mm - mes
aa - ano (09)
aaaa - ano (2009)
hh - hora
ii - minuto
ss - segundo
Sem data se a data n for convertida.
//*******************************/
function convData($data,$formato = null,$semData = '00/00/00 00:00:00')
{
$datas = explode(' ',$data);
if( count($datas)==1){
if( strpos($datas[0],'/')>0 ){
$datas = explode('/',$datas[0]);
$dia = $datas[0];
$mes = $datas[1];
$ano = $datas[2];
$pre = (($ano != '') ? "aaaa-" : "") . (($mes != '') ? "mm-" : "") . (($dia != '')? "dd" : "");
}else{
$datas = explode('-',$datas[0]);
$dia = $datas[2];
$mes = $datas[1];
$ano = $datas[0];
$pre = (($dia != '')? "dd" : "") . (($mes != '') ? "/mm" : "") . (($ano != '') ? "/aaaa" : "");
}
}else{
if( strpos($datas[1],":")>0 ){
$horas = explode(':',$datas[1]);
$hora = $horas[0];
$minu = $horas[1];
if(strpos($horas[2],'.')>0){
$horas = explode('.',$horas[2]);
$segu = $horas[0];
}else{
$segu = $horas[2];
}
if( strpos($datas[0],'/')>0 ){
$datas = explode('/',$datas[0]);
$dia = $datas[0];
$mes = $datas[1];
$ano = $datas[2];
$pre = (($ano != '') ? "aaaa-" : "") . (($mes != '') ? "mm-" : "") . (($dia != '')? "dd" : "") ." ". (($hora != '') ? " hh:" : "") . (($minu != '') ? "ii" : "") . (($segu != '') ? ":ss" : "");
}else{
$datas = explode('-',$datas[0]);
$dia = $datas[2];
$mes = $datas[1];
$ano = $datas[0];
$pre = (($dia != '')? "dd" : "") . (($mes != '') ? "/mm" : "") . (($ano != '') ? "/aaaa" : "") ." ". (($hora != '') ? " hh:" : "") . (($minu != '') ? "ii" : "") . (($segu != '') ? ":ss" : "");
}
}else{
$horas = explode(':',$datas[0]);
$hora = $horas[0];
$minu = $horas[1];
$segu = $horas[2];
if(strpos($horas[2],'.')>0){
$horas = explode('.',$horas[2]);
$segu = $horas[0];
}else{
$segu = $horas[2];
}
if( strpos($datas[1],'/')>0 ){
$datas = explode('/',$datas[1]);
$dia = $datas[0];
$mes = $datas[1];
$ano = $datas[2];
$pre = (($hora != '')?"hh:":"") . (($minu != '')?"ii":"") . (($segu != '')?":ss ":"") . " " . (($ano != '') ? "aaaa-" : "") . (($mes != '') ? "mm-" : "") . (($dia != '')? "dd" : "");
}else{
$datas = explode('-',$datas[1]);
$dia = $datas[2];
$mes = $datas[1];
$ano = $datas[0];
$pre = (($hora != '')?"hh:":"") . (($minu != '')?"ii":"") . (($segu != '')?":ss ":"") ." ". (($dia != '')? "dd" : "") . (($mes != '') ? "/mm" : "") . (($ano != '') ? "/aaaa" : "");
}
}
}
$formato = (($formato == null) ? $pre : $formato);
$formato = str_replace('dd',$dia,$formato);
$formato = str_replace('mm',$mes,$formato);
$formato = str_replace('aaaa',$ano,$formato);
$formato = str_replace('aa',((strlen($ano)>2)?substr($ano,-2):$ano),$formato);
$formato = str_replace('hh',$hora,$formato);
$formato = str_replace('ii',$minu,$formato);
$formato = str_replace('ss',$segu,$formato);
return (($ano!='')?((checkdate($mes,$dia,$ano)) ? $formato : $semData) : $formato);
}
print convData("2009-08-10 13:00:00.000"). "<br>";
print convData(date("h:i:s Y-m-d"),'dd/mm/aa hh:ii:ss'). "<br>";
print convData(date("h:i:s d/m/Y"),'dd/mm/aa hh:ii:ss'). "<br>";
print convData(date("Y-m-d h:i:s"),'dd/mm/aa hh:ii:ss') . "<br>";
print convData(date("d/m/Y h:i:s"),'dd/mm/aa hh:ii:ss') . "<br>";
print "<br>";
print convData(date("y-m-d")). "<br>";
print convData(date("d/m")). "<br>";
print convData(date("y-m-d h:i:s")) . "<br>";
print convData(date("d/m/y h:i:s")) . "<br>";
print "<br>";
print convData(date("h:i:s 88-10-55"),'dd/mm/aa hh:ii:ss'). "<br>";
?>
ou também um outro exemplo para casos mais simples
<?php
function formataData($data) {
$hora = substr($data,10,6);
$data = substr($data,0,10);
if (substr($data, 2, 1) == "/")
return implode('-', array_reverse(explode('/', $data))).$hora;
else
return implode('/', array_reverse(explode('-', $data))).$hora;
}
print formataData("2008-10-08 09:32")."<br>";
print formataData("17/10/1985")."<br>";
?>
Tags: PHP