DateTimeInterface::diff
DateTimeImmutable::diff
DateTime::diff
date_diff
返回两个 DateTime 之间的差值
&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;
返回两个 DateTimeInterface 对象的差值。
&reftitle.parameters;
datetime
要比较的日期。
absolute
间隔是否强制为正的?
&reftitle.returnvalues;
DateInterval 对象表示两个日期之间的差值。
absolute 参数只影响 DateInterval 对象的
invert 属性。
返回更具体的表示应用于原始对象($this 或
$originObject)到达 $targetObject
的时钟时间间隔的值。该过程始终不可逆。
该方法知道 DST 转换,因此可以根据示例返回 24 小时 30
分钟的时间间隔。如果想使用绝对时间计算,则需要先将
$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;
DST 转换期间的 DateTimeInterface::diff
diff($targetTime);
echo $interval->format("%H:%I:%S (Full days: %a)"), "\n";
]]>
&example.outputs;
DateTimeInterface::diff range
该方法返回的值是从 $this 到达 $targetObject
所需要的精确时间。因此,将 1 月 1 日与 12 月 31 日进行比较,返回的结果是 364,而不是
365 天(对于非闰年)。
diff($targetTime);
echo "Full days: ", $interval->format("%a"), "\n";
]]>
&example.outputs;
DateTime 对象比较
DateTimeImmutable 和 DateTime
对象可以使用比较运算符进行比较。
$date2);
]]>
&example.outputs;
&reftitle.seealso;
DateInterval::format
DateTime::add
DateTime::sub