Tema: Restar horas
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/09/2005, 07:18
Avatar de jerkan
jerkan
 
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
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;


Última edición por jerkan; 18/12/2005 a las 09:49