PHP - 2个日期之间的差异,返回0

时间:2013-10-27 12:47:54

标签: php

$from_time = date('Y-m-d H:i:s');
$to_time = $row['clock'];

echo  $from_time - $to_time;

$ to_time是MySQL数据库中的时间戳。 $ row ['clock'] = 2013-10-27 13:28:01。

当我运行此代码时,echo始终返回0.

我想获得日期之间的秒数。

3 个答案:

答案 0 :(得分:6)

你基本上是想减去两个字符串。如果您回显$from_time,则可以发现该值类似于2013-10-27 12:49:270,而$to_time将是另一个字符串 - 2013-10-27 13:28:01

在进行减法之前,您需要将它们转换为时间戳:

$from_time = time();
$to_time = strtotime($row['clock']);

我建议使用DateTime课程来处理日期和时间。

这是使用DateTime类找到两个日期之间差异的方法:

$from_time = new DateTime('now');
$to_time = new DateTime("2013-10-27 13:28:01");
$interval = $from_time->diff($to_time);
echo $interval->format('%h hours %i minutes %S seconds');

输出:

0 hours 31 minutes 48 seconds

答案 1 :(得分:1)

首先使用$to_timetimestamp转换为strtotime(),然后减去,只有这样才能得到正确的结果

答案 2 :(得分:0)

strtotime会将日期转换为UNIX的时间戳,
这是在几秒钟内,将使您能够进行计算 http://php.net/manual/de/function.strtotime.php

$from_time = time();
$to_time = strtotime($row['clock']);

echo  $from_time - $to_time;