(PHP 5 >= 5.3.0, PHP 7)
DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Returns the difference between two DateTime objects
面向对象风格
$targetObject
[, bool $absolute
= FALSE
] ) : DateInterval|false$targetObject
[, bool $absolute
= FALSE
] ) : DateInterval|false$targetObject
[, bool $absolute
= FALSE
] ) : DateInterval|false过程化风格
$originObject
, DateTimeInterface $targetObject
[, bool $absolute
= FALSE
] ) : DateInterval|falseReturns 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 或者在失败时返回 FALSE
.
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
面向对象风格
<?php
$origin = new DateTime('2009-10-11');
$target = new DateTime('2009-10-13');
$interval = $origin->diff($target);
echo $interval->format('%R%a days');
?>
过程化风格
<?php
$origin = date_create('2009-10-11');
$target = date_create('2009-10-13');
$interval = date_diff($origin, $target);
echo $interval->format('%R%a days');
?>
以上例程会输出:
+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);
?>
以上例程会输出:
bool(false) bool(true) bool(false)