funções PHP para converter formato da data

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>";
?>
Compartilhar:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • RSS
  • Twitter
  • Add to favorites
  • Diigo
  • email
  • LinkedIn
  • Live
  • Mixx
  • MySpace
  • PDF
  • Sphinn
  • StumbleUpon
  • Yahoo! Bookmarks

Tags:

Leave a Reply