如何在php中添加时间变量

时间:2013-08-10 03:21:06

标签: php date strtotime

我以为这应该很简单。

$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

有什么线索?

1 个答案:

答案 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

PHPFiddle Example