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.