(PHP 5 >= 5.3.0, PHP 7)
DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Returns the difference between two DateTime objects
Object oriented style
public DateTime::diff ( DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval|false
public DateTimeImmutable::diff ( DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval|false
public DateTimeInterface::diff ( DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval|false
Procedural style
date_diff ( DateTimeInterface $baseObject , DateTimeInterface $targetObject [, bool $absolute = false ] ) : DateInterval
Returns the difference between two DateTimeInterface objects.
datetime
The date to compare to.
absolute
Should the interval be forced to be positive?
The DateInterval object represents the difference between the two dates or false
on failure.
The return value more specifically represents the interval to apply to the original object ($this
or $originObject
) to arrive at the $targetObject
. This process is not always reversible.
Example #1 DateTime::diff() example
Object oriented style
<?php $origin = new DateTime('2009-10-11'); $target = new DateTime('2009-10-13'); $interval = $origin->diff($target); echo $interval->format('%R%a days'); ?>
Procedural style
<?php $origin = date_create('2009-10-11'); $target = date_create('2009-10-13'); $interval = date_diff($origin, $target); echo $interval->format('%R%a days'); ?>
The above examples will output:
+2 days
Example #2 DateTime object comparison
Note:
As of PHP 5.2.2, DateTime objects can be compared using comparison operators.
<?php $date1 = new DateTime("now"); $date2 = new DateTime("tomorrow"); var_dump($date1 == $date2); var_dump($date1 < $date2); var_dump($date1 > $date2); ?>
The above example will output:
bool(false) bool(true) bool(false)
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/datetime.diff.php