Amigos estuve con unos problemas al comparar fechas en formato dd/mm/aaaa
asi que decidi armar una funcion para este fin la cual recibe una arreglo con las fechas y devuelva la mayor de ellas y tambien puede devolver todo el array ordenado de menor a mayor.... como recien la arme les pido la pongan a prueba para mejorarla....
Código PHP:
<?php
//array con fechas
$fech[0]="28/02/2009";
$fech[1]="28/03/2009";
$fech[2]="28/01/2009";
$fech[3]="15/01/2060";
echo"Fecha Mayor::".comparaNfechas($fech)."<br>";//llamo a funcion devuelve fecha
var_dump(comparaNfechas($fech,"/","array"));//devuelve array ordenado de menor a mayor
//************************
//by [email protected]
//07-08-2009
//v.:1.0
//************************
function comparaNfechas($fechas,$separador="/",$devolver="valor")
{
//inicializo variables
$debugX=false;//si esta TRUE, muestra una serie de mensaje por pantalla
$error=false;
$devolver=strtolower($devolver);//arreglo para comparar mejor
$msj_error="00".$separador."00".$separador."0000";//mensaje a mostrar si fecha mala
//recorro fechas
foreach($fechas as $n =>$valor)
{
if($debugX){echo"$n -> $valor<br>";}
$aux=explode($separador,$valor);
//separo en partes la fechas
$aux_dia=$aux[0];
$aux_mes=$aux[1];
$aux_ano=$aux[2];
if($debugX){
echo "dia $aux_dia mes $aux_mes ano $aux_ano<br>";}
if(!checkdate($aux_mes,$aux_dia,$aux_ano))//compruebo la fecha
{
if($debugX){echo"fecha Errornea";}
$error=true;
break;
}
$F[$valor]=gregoriantojd($aux_mes,$aux_dia,$aux_ano);//cuento los dias
}
if($debugX){
foreach($F as $n => $valor)
{
echo"$n -> $valor <br>";
}
}
if(!$error)
{
asort($F);//ordeno array
if($debuX){
echo"<br>";
foreach($F as $n => $valor)
{
echo"$n -> $valor <br>";
}
}
//realizo accion segun el valor a devolver
switch ($devolver)
{
case "valor":
end($F);
$valor=key($F);//obtengo clave de ultima posicion o mayor fecha
return($valor);
break;
case "array":
return($F);
break;
default:
end($F);
$valor=key($F);
return($valor);
break;
}
}
else{return($msj_error);}
}
?>
espero sus comentarios y/o sugerencias