1
$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。

当我运行这段代码时,回显总是返回 0。

我正在尝试获取日期之间的秒数。

4

3 回答 3

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
于 2013-10-27T12:51:22.417 回答
1

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

于 2013-10-27T12:55:28.423 回答
0

strtotime将日期转换为 UNIX 时间戳,
以秒为单位,使您能够进行计算。
http://php.net/manual/de/function.strtotime.php

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

echo  $from_time - $to_time;
于 2013-10-27T12:50:49.190 回答