PHP DateTime:如何使用 24 小时制格式在两个时间之间获取“差异”


PHP DateTime: How to get "diff" between two times using 24 hour clock format

尝试减去两次:

$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小时"时间之间的时差?

怎么样

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

谢谢格威利。 这并不像你所拥有的那样有效,但是,这是因为时间变量的顺序。

如果从较新的时间中减去较旧的时间,则可以工作。

这将输出 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);

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