PHP DateTime diff创建具有负小时的DateInterval

时间:2016-12-05 13:11:09

标签: php datetime dateinterval

我最近发现了DateTime diff()的奇怪行为。 我只是想计算以下日期之间的差异:

$first = new DateTime('2016-07-05T00:00:00');
$second = new DateTime('2016-12-30T23:59:59');
$interval = $first->diff($second);
echo $interval->h;

奇怪的是,这将输出:

-1

因为我认为DateInterval的公共属性是正面的,所以有点混乱。 现在,如果我尝试自己创建这样的DateInterval:

$interval = new DateInterval('P5M26DT-1H59M59S');

这将失败,因为不允许小时的负值。

这种行为是正常的吗?如果是,我如何安全地将DateInterval转换为string / from string(e.q。用于存储在DB中)?

0 个答案:

没有答案
相关问题