Método diff de la clase DateTime

El método diff de la clase DateTime toma como parámetro otro objeto DateTime y devuelve un objeto DateInterval que contiene la diferencia entre las fechas. La diferencia se puede obtener en varias unidades de medida (días, meses, años, etc.).

Sintaxis

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

Ejemplo

Calculemos la diferencia entre dos fechas:

php<?php
  $date1 = new DateTime('2023-01-01');
  $date2 = new DateTime('2023-02-15');
  $interval = $date1->diff($date2);
  echo $interval->format('%R%a days');
?>

Resultado de ejecutar el código:

php'+45 days'

Ejemplo

Obtengamos la diferencia en meses y días:

php<?php
  $date1 = new DateTime('2023-03-10');
  $date2 = new DateTime('2023-05-25');
  $interval = $date1->diff($date2);
  echo $interval->format('%m months %d days');
?>

Resultado de ejecutar el código:

php'2 months 15 days'

Ejemplo

Comparación de fechas teniendo en cuenta la hora:

php<?php
  $date1 = new DateTime('2023-01-01 10:00:00');
  $date2 = new DateTime('2023-01-01 14:30:00');
  $interval = $date1->diff($date2);
  echo $interval->format('%h hours %i minutes');
?>

Resultado de ejecutar el código:

php'4 hours 30 minutes'

Ver también

  • la función date,
    que formatea fecha y hora
  • la función strtotime,
    que convierte una cadena a marca de tiempo
  • la clase DateInterval,
    que representa un intervalo de fechas