Pues no se si el php tiene alguna funcion que haga eso pero yo me hice una. Aquí está:
Código PHP:
/**
* Compara dos fechas.
*
* Devuelve -1 si la primera fecha(fecha1, hora1) es menor que la segunda(fecha2, hora2)
* Devuelve 0 si la primera fecha(fecha1, hora1) es igual que la segunda(fecha2, hora2)
* Devuelve 1 si la primera fecha(fecha1, hora1) es mayor que la segunda(fecha2, hora2)
*/
function compareDates($fecha1, $hora1, $fecha2, $hora2)
{
$resultado = 0;
//echo "<BR>PreFecha1: ".$fecha1." PreFecha2: ".$fecha2;
// gestiona la primera fecha
$trozos=explode(SEPARADOR_FECHA,$fecha1,3);
$Fecha1Dia = $trozos[0];
$Fecha1Mes = $trozos[1];
$Fecha1Ano = $trozos[2];
//echo "<BR>PostFecha 1: ".$Fecha1Dia."-".$Fecha1Mes."-".$Fecha1Ano;
// gestiona la primera hora
$trozos=explode(":",$hora1,3);
$Hora1Hora = $trozos[0];
$Hora1Minuto = $trozos[1];
$Hora1Segundo = $trozos[2];
//echo "<BR>PostHora 1: ".$Hora1Hora.":".$Hora1Minuto.":".$Hora1Segundo;
// Gestiona la segunda fecha
$trozos=explode(SEPARADOR_FECHA,$fecha2,3);
$Fecha2Dia = $trozos[0];
$Fecha2Mes = $trozos[1];
$Fecha2Ano = $trozos[2];
//echo "<BR>PostFecha 2: ".$Fecha2Dia."-".$Fecha2Mes."-".$Fecha2Ano;
// gestiona la segunda hora
$trozos=explode(":",$hora2,3);
$Hora2Hora = $trozos[0];
$Hora2Minuto = $trozos[1];
$Hora2Segundo = $trozos[2];
//echo "<BR>PostHora 2: ".$Hora2Hora.":".$Hora2Minuto.":".$Hora2Segundo;
// Compara la fechas
if( ( $Fecha1Ano < $Fecha2Ano )
|| ( $Fecha1Ano == $Fecha2Ano && $Fecha1Mes < $Fecha2Mes )
|| ( $Fecha1Ano == $Fecha2Ano && $Fecha1Mes == $Fecha2Mes && $Fecha1Dia < $Fecha2Dia) )
{
$resultado = -1;
}
if( ($Fecha1Ano == $Fecha2Ano)
&& ($Fecha1Mes == $Fecha2Mes)
&& ($Fecha1Dia == $Fecha2Dia ) )
{
if( ($Hora1Hora < $Hora2Hora)
|| ($Hora1Hora == $Hora2Hora && $Hora1Minuto < $Hora2Minuto )
|| ($Hora1Hora == $Hora2Hora && $Hora1Minuto == $Hora2Minuto && $Hora1Segundo < $Hora2Segundo) )
{
$resultado = -1;
}
else if( ($Hora1Hora == $Hora2Hora)
&& ($Hora1Minuto == $Hora2Minuto)
&& ($Hora1Segundo == $Hora2Segundo) )
{
$resultado = 0;
}
else
{
$resultado = 1;
}
}
if( ( $Fecha1Ano > $Fecha2Ano )
|| ( $Fecha1Ano == $Fecha2Ano && $Fecha1Mes > $Fecha2Mes )
|| ( $Fecha1Ano == $Fecha2Ano && $Fecha1Mes == $Fecha2Mes && $Fecha1Dia > $Fecha2Dia) )
{
$resultado = 1;
}
return $resultado;
}