小问题PHP日期/ strtotime功能

时间:2017-05-04 12:51:23

标签: php date strtotime

我的代码中遇到了一个小问题。我试图计算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。

我做错了什么?

提前致谢!

3 个答案:

答案 0 :(得分:0)

这是因为date()的输出被改变了#34;按服务器所在的时区。您可以查看this question以获取更多信息。

相反,你可以使用gmdate()(没有时区问题):

$endtime = "13:00";
$starttime = "12:00";
$difference = abs(strtotime($endtime) - strtotime($starttime));
echo gmdate("H:i", $difference);
// 01:00

请参阅https://3v4l.org/BkRFM了解输出。

答案 1 :(得分:0)

使用此代码进行时间减法

$tt['endtime']   = '13:00:00';
$tt['starttime'] = '12:00:00';

$dif = strtotime($tt['endtime']) - strtotime($tt['starttime']); //here you can subtraction occurs

echo gmdate("H:i", $dif);  // In this step you got the correct output 01:00

答案 2 :(得分:0)

使用gmdate()

$dif = strtotime('13:00')-strtotime('12:00');
echo gmdate("H:i", $dif);