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";
| Formato | Descripción |
%y | Años (ej. 1, 40) |
%m | Meses (0 a 12) |
%d | Días (0 a 31) |
%a | Total de días transcurridos |
%h | Horas |