获得H:mm:ss格式的时差

时间:2017-11-09 03:31:42

标签: php

我试图使用PHP找到H:mm:ss格式的两个时间值之间的时差。

当我尝试使用以下代码时,我得到的是01:00:20而不是00:00:20。我的代码出了什么问题?

$start_time = strtotime("0:17:14");
$end_time = strtotime("0:17:34");
$diff = $end_time - $start_time;
echo date('H:i:s', $diff);

1 个答案:

答案 0 :(得分:1)

您的$diff变量不是时间戳,而是持续时间/间隔。 date()函数用于格式化时间戳,并且无法正确处理您期望的间隔。

相反,请尝试使用DateTime类来阅读时间戳,并使用DateInterval将它们之间的差异转换为DateTime::diff()。然后,您可以使用DateInterval::format获取所需的输出。

这样的事情应该有效:

$start_time = new DateTime("0:17:14");
$end_time = new DateTime("0:17:34");
$diff = $end_time->diff($start_time);
echo $diff->format('%H:%I:%S');