我正试图用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);
发布于 2017-11-08 19:36:18
您的$diff
变量不是时间戳,而是持续时间/间隔。date()
函数的目的是格式化时间戳,并且不会像您期望的那样正确地处理时间间隔。
相反,尝试使用DateTime
类读取时间戳,并使用DateTime::diff()
将时间戳之间的差异转换为DateInterval
。然后可以使用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');
https://stackoverflow.com/questions/47193446
复制相似问题