情况
我有两个时间戳。
一个是开始时间,一个是结束时间。
开始时间是:04:43:37
结束时间是:11:59:59
现在我想尝试区分这样的日期:
//define timestamps
$start_time = 1297698217;
$end_time = 1297724399;
$time_diff = $end_time - $start_time;
//display times and difference
echo
'<b>Start time:</b> ' . date('d-m-Y h:i:s', $start_time) . '<br />' .
'<b>End time:</b> ' . date('d-m-Y h:i:s', $end_time) . '<br />' .
'<b>Time difference::</b> ' . date('h:i:s', $time_diff);
结果
Start time: 14-02-2011 04:43:37
End time: 14-02-2011 11:59:59
Time difference: 08:16:22
问题
现在的问题是结果应该是07:16:22。我已经尝试了不同的时间,但每次我得到相同的结果。一小时差异太大了。
是否有专家愿意提供帮助?
答案 0 :(得分:6)
最后一个应该是gmdate
而不是date
:
'<b>Time difference::</b> ' . gmdate('h:i:s', $time_diff);
date
会调整您当前的区域设置,该区域设置似乎是GMT + 1。 gmdate
没有进行调整。
我假设您只计划在24小时内使用此差异。
答案 1 :(得分:0)
你要求它将1970-01-01 07:16:22变成一个时间字符串进行显示 - 根据你的时区会有差异。
要使其成为GMT日期,请使用gmdate(),但是当时差达到> 24小时时,这仍会导致问题。