Cómo calcular la diferencia entre fechas en PHP

En el desarrollo web, es común necesitar calcular el tiempo transcurrido entre dos eventos o determinar la edad de un usuario. PHP ofrece la clase nativa DateTime, que es la forma más precisa y moderna de manejar estas operaciones, evitando problemas con años bisiestos o cambios de zona horaria.

/**
* Calcula la diferencia entre dos fechas.
* * @param string $date Fecha de inicio (Y-m-d).
* @param string $date1 Fecha final (opcional, por defecto es 'ahora').
* @param string $format Formato de salida (por defecto '%y' para años).
* @return string Tiempo formateado.
*/
public function calcularTiempo($date, $date1 = '', $format = '%y') {
$datetime1 = new DateTime($date);
$datetime2 = empty($date1) ? new DateTime() : new DateTime($date1);

$interval = $datetime1->diff($datetime2);

return $interval->format($format);
}

Como utilizar la función:

Ejemplos Prácticos de Uso
A) Calcular la edad actual Ideal para perfiles de usuario. Solo necesitas pasar la fecha de nacimiento.
$nacimiento = '1985-06-24';
echo calcularTiempo($nacimiento) . " años"; // Resultado: 40 (en 2025)

B) Diferencia total en días entre dos fechas Si necesitas saber cuántos días han pasado entre dos eventos específicos.
$inicio = '1985-06-24';
$fin    = '1985-08-24';
// Usamos el formato '%a' para el total de días
echo calcularTiempo($inicio, $fin, '%a') . " días";
FormatoDescripción
%yAños (ej. 1, 40)
%mMeses (0 a 12)
%dDías (0 a 31)
%aTotal de días transcurridos
%hHoras

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Captcha cargando...

Scroll al inicio