PHP DateTime:如何使用24小时时钟格式在两次之间获得“diff”

时间:2013-10-10 02:20:48

标签: php datetime time diff intervals

尝试减去两次:

$obtime = "2310";
$runtime = "0048";

$run=new DateTime($runtime);
$ob=new DateTime($obtime);
$interval= $run->diff($ob);
$age=$interval->format('%H%I');
print "Age is: $age\n";

以上将输出2222,意味着22小时22分钟的差异。 当然,我们知道时钟会前进,而0048在2310之后仅仅是1小时38分钟。

有没有更好的方法来找到两个“24小时”之间的时差?

2 个答案:

答案 0 :(得分:1)

怎么样

$obtime = strtotime("2310");
$runtime = strtotime("0048");
echo gmdate("H:i:s", $obtime - $runtime);

答案 1 :(得分:0)

谢谢gwillie。这不起作用,但是,这是因为时间变量的顺序。

如果从NEWER时间减去旧时间,则可以正常工作。

输出1小时38分钟:

$obtime = strtotime("2210");
$runtime = strtotime("2348");
echo gmdate("H:i", $runtime - $obtime);

虽然这输出22小时22分钟:

$obtime = strtotime("2210");
$runtime = strtotime("2348");
echo gmdate("H:i", $obtime - $runtime);

很高兴知道这种方法可以前进或后退,而我使用的原始方法并不是那么“聪明”。