我试图使用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);
答案 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');