Метод 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,
    который представляет интервал дат