我以为这应该很简单。
$m_time1 = strtotime('1:00:00');
$m_time2 = strtotime('5:30:00');
$m_total = $m_time1 + $m_time2;
echo date('h:i:s', $m_total);
结果为3:30:00
,但应为6:30:00
有什么线索?
答案 0 :(得分:1)
strtotime()
生成一个unix时间戳,表示所提供的时间与1970年1月1日之间的秒数。由于您未在函数调用中指定日期,因此它假定您通过时的当前日期这个功能。
结果,上面的代码,今天运行产生
的输出$m_time1 = 1376024400
$m_time2 = 1376040600
当您将这些内容添加到一起时,会导致3:30 AM
年中的2057
“时间”。
为避免发生这种情况,您需要在添加它们之前从时间戳中减去“今天”的时间戳,然后在添加后再将其添加回来。
$today = strtotime("TODAY");
$m_time1 = strtotime('1:00:00') - $today;
$m_time2 = strtotime('5:30:00') - $today;
$m_total = $m_time1 + $m_time2 + $today;
echo date('h:i:s', $m_total);
以上代码回显6:30:00
。