【发布时间】:2017-05-04 12:51:23
【问题描述】:
我的代码有一个小问题。我正在尝试计算 2 次之间的差异。
这是我的代码:
$dif = strtotime($tt['endtime']) - strtotime($tt['starttime']);
echo date("H:i", $dif);
$tt['endtime'] = 13:00 和 $tt['starttime'] 是 12:00 所以输出应该是 01:00,但输出是 02:00。
我做错了什么?
提前致谢!
【问题讨论】:
-
date需要一个 unix 时间戳,而不是 2 之间的差异。 -
您正在尝试将日期差异转换为日期。当你有 5 月 4 日 11:00 和 5 月 5 日 11:00 时会发生什么?
-
您希望如何显示格式,因为您当前所做的正在传递错误的差异,您需要手动转换这些格式
-
“我做错了什么?”——你把纯粹的时间当作日期来使用。你的差异的结果是
3600- 所以这是从 unix 时代开始的 3,600 秒,所以 1.1.1970 0:00:00。而且由于您再次将其格式化为日期,因此时区开始发挥作用。如果时区有夏令时/冬令时,那么您很可能在 1.1.1970 上有冬令时。所以相差一小时。 -
如果您坚持以该格式回显,您可以将您的
$dif添加到00:00。