DateTimeInterface::diffDateTimeImmutable::diffDateTime::diffdate_diffВозвращает разницу между двумя объектами даты и времени
&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;
Пример вычисления разницы между датами методом DateTimeImmutable::diff&style.oop;
diff($target);
echo $interval->format('%R%a days');
]]>
&example.outputs;
&style.procedural;
format('%R%a days');
]]>
&example.outputs;
Пример вычисления разницы между датами методом DateTimeInterface::diff
при переходе на летнее время
diff($targetTime);
echo $interval->format("%H:%I:%S (Полных дней: %a)"), "\n";
]]>
&example.outputs;
Пример вычисления разницы для диапазона дат методом DateTimeInterface::diff
Значение, которое возвращает метод, — точное количество времени, которое требуется
для перехода от времени объекта $this ко времени объекта $targetObject.
Поэтому сравнение 1 января с 31 декабря для невисокосных годов возвращает 364 дня, а не 365.
diff($targetTime);
echo "Полных дней: ", $interval->format("%a"), "\n";
]]>
&example.outputs;
Сравнение объектов DateTime
Объекты DateTimeImmutable
и DateTime возможно сравнивать
операторами сравнения.
$date2);
]]>
&example.outputs;
&reftitle.seealso;
DateInterval::formatDateTime::addDateTime::sub