DateTimeInterface::diffDateTimeImmutable::diffDateTime::diffdate_diffВозвращает разницу между двумя объектами DateTime
&reftitle.description;
&style.oop;publicDateIntervalDateTimeInterface::diffDateTimeInterfacetargetObjectboolabsolute&false;publicDateIntervalDateTimeImmutable::diffDateTimeInterfacetargetObjectboolabsolute&false;publicDateIntervalDateTime::diffDateTimeInterfacetargetObjectboolabsolute&false;&style.procedural;DateIntervaldate_diffDateTimeInterfacebaseObjectDateTimeInterfacetargetObjectboolabsolute&false;
Метод возвращает разницу между двумя объектами DateTimeInterface.
&reftitle.parameters;
datetime
Дата, с которой требуется сравнение.
absolute
Логическое значение, которое определяет, требуется ли принудительно переводить интервал в абсолютную величину.
&reftitle.returnvalues;
Метод возвращает объект DateInterval, который представляет
разницу между двумя датами.
Параметр absolute влияет только
на свойство invert
объекта DateInterval.
Конкретнее — метод возвращает значение, которое представляет интервал времени,
который требуется применить к исходному объекту $this или $originObject,
чтобы получить целевой объект $targetObject.
Процесс обратим не всегда.
Метод учитывает смену часовых поясов и поэтому иногда возвращает интервал
24 hours and 30 minutes, как в одном из примеров.
Сначала объекты $this или $baseObject
и $targetObject преобразовывают к часовому поясу UTC,
когда требуется рассчитывать абсолютное время.
&reftitle.examples;
Пример использования метода DateTimeInterface::diff с диапазоном дат
Значение, которое возвращает метод, — точное количество времени, которое требуется
для перехода от времени объекта $this ко времени объекта $targetObject.
Поэтому сравнение 1 января с 31 декабря возвращает 364 дня, а не 365 дней
(для невисокосных годов).
diff($targetTime);
echo "Полных дней: ", $interval->format("%a"), "\n";
?>
]]>
&example.outputs;
Пример использования метода DateTimeImmutable::diff&style.oop;
diff($target);
echo $interval->format('%R%a дней');
?>
]]>
&style.procedural;
format('%R%a дней');
?>
]]>
&examples.outputs;
Пример использования метода DateTimeInterface::diff
при переходе на летнее время
diff($targetTime);
echo $interval->format("%H:%I:%S (Полных дней: %a)"), "\n";
?>
]]>
&example.outputs;
Сравнение объектов DateTime
Объекты DateTimeImmutable и
DateTime можно сравнивать
операторами сравнения.
$date2);
?>
]]>
&example.outputs;
&reftitle.seealso;
DateInterval::formatDateTime::addDateTime::sub