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; <function>DateTimeImmutable::diff</function> 示例 &style.oop; diff($target); echo $interval->format('%R%a days'); ]]> &example.outputs; &style.procedural; format('%R%a days'); ]]> &example.outputs; DST 转换期间的 <methodname>DateTimeInterface::diff</methodname> diff($targetTime); echo $interval->format("%H:%I:%S (Full days: %a)"), "\n"; ]]> &example.outputs; <methodname>DateTimeInterface::diff</methodname> range 该方法返回的值是从 $this 到达 $targetObject 所需要的精确时间。因此,将 1 月 1 日与 12 月 31 日进行比较,返回的结果是 364,而不是 365 天(对于非闰年)。 diff($targetTime); echo "Full days: ", $interval->format("%a"), "\n"; ]]> &example.outputs; <classname>DateTime</classname> 对象比较 DateTimeImmutableDateTime 对象可以使用比较运算符进行比较。 $date2); ]]> &example.outputs; &reftitle.seealso; DateInterval::format DateTime::add DateTime::sub