DateTimeInterface::diff
DateTimeImmutable::diff
DateTime::diff
date_diff
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateTimeInterface::diff -- DateTimeImmutable::diff -- DateTime::diff -- date_diff — Returns the difference between two DateTime objects
Description
Object-oriented style
$targetObject
, bool $absolute
= false
): DateInterval$targetObject
, bool $absolute
= false
): DateIntervalProcedural style
$baseObject
, DateTimeInterface $targetObject
, bool $absolute
= false
): DateIntervalReturns the difference between two DateTimeInterface objects.
Parameters
-
datetime
-
The date to compare to.
-
absolute
-
Should the interval be forced to be positive?
Return Values
The DateInterval object represents the difference between the two dates.
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.
Examples
Example #1 DateTimeImmutable::diff() example
Object-oriented style
<?php
$origin = new DateTimeImmutable('2009-10-11');
$target = new DateTimeImmutable('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:
DateTimeImmutable and 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)
See Also
- DateInterval::format() - Formats the interval
- DateTime::add() - Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds
- DateTime::sub() - Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object