DateTimeInterface::diff DateTimeImmutable::diff DateTime::diff date_diff Returns the difference between two DateTime objects &reftitle.description; &style.oop; public DateIntervalDateTimeInterface::diff DateTimeInterfacetargetObject boolabsolute&false; public DateIntervalDateTimeImmutable::diff DateTimeInterfacetargetObject boolabsolute&false; public DateIntervalDateTime::diff DateTimeInterfacetargetObject boolabsolute&false; &style.procedural; DateIntervaldate_diff DateTimeInterfacebaseObject DateTimeInterfacetargetObject boolabsolute&false; Returns the difference between two DateTimeInterface objects. &reftitle.parameters; datetime The date to compare to. absolute Should the interval be forced to be positive? &reftitle.returnvalues; The DateInterval object represents the difference between the two dates. The return value more specifically represents the clock-time interval to apply to the original object ($this or $originObject) to arrive at the $targetObject. This process is not always reversible. The method is aware of DST changeovers, and hence can return an interval of 24 hours and 30 minutes, as per one of the examples. If you want to calculate with absolute time, you need to convert both the $this/$baseObject, and $targetObject to UTC first. &reftitle.examples; <function>DateTimeImmutable::diff</function> example &style.oop; diff($target); echo $interval->format('%R%a days'); ?> ]]> &style.procedural; format('%R%a days'); ?> ]]> &examples.outputs; <methodname>DateTimeInterface::diff</methodname> during DST changeover diff($targedTime); echo $interval->format("%H:%I:%S (Full days: %a)"), "\n"; ?> ]]> &example.outputs; <classname>DateTime</classname> object comparison DateTimeImmutable and DateTime objects can be compared using comparison operators. $date2); ?> ]]> &example.outputs; &reftitle.seealso; DateInterval::format DateTime::add DateTime::sub