Blog Reacción Estudio

¡Tu zona de aprendizaje!

Obtener tiempo transcurrido entre dos fechas con PHP

Os dejo una función muy sencilla a la que recurrí el otro día para obtener el tiempo transcurrido entre dos fechas con el formato «X años, X meses, X días, X horas, X minutos«.

Si por ejemplo no ha transcurrido ningún año entre las fechas, en la cadena devuelta no se mostrarán los años.

function tiempoTranscurridoFechas($fechaInicio,$fechaFin)
{
    $fecha1 = new DateTime($fechaInicio);
    $fecha2 = new DateTime($fechaFin);
    $fecha = $fecha1->diff($fecha2);
    $tiempo = "";
        
    //años
    if($fecha->y > 0)
    {
        $tiempo .= $fecha->y;
            
        if($fecha->y == 1)
            $tiempo .= " año, ";
        else
            $tiempo .= " años, ";
    }
        
    //meses
    if($fecha->m > 0)
    {
        $tiempo .= $fecha->m;
            
        if($fecha->m == 1)
            $tiempo .= " mes, ";
        else
            $tiempo .= " meses, ";
    }
        
    //dias
    if($fecha->d > 0)
    {
        $tiempo .= $fecha->d;
            
        if($fecha->d == 1)
            $tiempo .= " día, ";
        else
            $tiempo .= " días, ";
    }
        
    //horas
    if($fecha->h > 0)
    {
        $tiempo .= $fecha->h;
            
        if($fecha->h == 1)
            $tiempo .= " hora, ";
        else
            $tiempo .= " horas, ";
    }
        
    //minutos
    if($fecha->i > 0)
    {
        $tiempo .= $fecha->i;
            
        if($fecha->i == 1)
            $tiempo .= " minuto";
        else
            $tiempo .= " minutos";
    }
    else if($fecha->i == 0) //segundos
        $tiempo .= $fecha->s." segundos";
        
    return $tiempo;
}

Para poder usar la clase «DateTime» es necesario tener como mínimo PHP 5.2.0.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.     ACEPTAR