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

use*_*019 1 php

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

echo  $from_time - $to_time;
Run Code Online (Sandbox Code Playgroud)

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

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

我想要获得日期之间的秒数.

Ama*_*ali 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']);
Run Code Online (Sandbox Code Playgroud)

我建议使用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');
Run Code Online (Sandbox Code Playgroud)

输出:

0 hours 31 minutes 48 seconds
Run Code Online (Sandbox Code Playgroud)