Метод diff на класа DateTime

Методът diff на класа DateTime приема като параметър друг обект DateTime и връща обект DateInterval, съдържащ разликата между датите. Разликата може да бъде получена в различни мерни единици (дни, месеци, години и т.н.).

Синтаксис

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

Пример

Нека изчислим разликата между две дати:

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

Резултат от изпълнението на кода:

php'+45 days'

Пример

Нека получим разликата в месеци и дни:

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');
?>

Резултат от изпълнението на кода:

php'2 months 15 days'

Пример

Сравнение на дати с отчитане на времето:

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');
?>

Резултат от изпълнението на кода:

php'4 hours 30 minutes'

Вижте също

  • функцията date,
    която форматира дата и час
  • функцията strtotime,
    която преобразува низ във времева марка
  • класът DateInterval,
    който представлява интервал от дати