Php减去两个日期

Php减去两个日期,php,datetime,subtraction,Php,Datetime,Subtraction,我从mysql数据库中获取$status\u date,当我回显$status\u date时,它看起来像->2016-01-08 22:18:14。我正在设置$now,当我回显时,它看起来像->2016-01-08 22:43:27。我想从$now中减去$status\U date。这是我的密码: $now = date("Y-m-d H:i:s"); $status_date = date("Y-m-d H:i:s",strtotime($row['status_date'])); $x

我从mysql数据库中获取$status\u date,当我回显$status\u date时,它看起来像->2016-01-08 22:18:14。我正在设置$now,当我回显时,它看起来像->2016-01-08 22:43:27。我想从$now中减去$status\U date。这是我的密码:

$now = date("Y-m-d H:i:s");  
$status_date = date("Y-m-d H:i:s",strtotime($row['status_date']));
$x = $now-$status_date;
$x返回此->0


为什么不减法呢?

日期不是这样减法的。将两个日期转换为时间、减法,然后再转换回日期

$now = strtotime(date("Y-m-d H:i:s"));
$status_date = strtotime($row['status_date']);
$x = date($now-$status_date);
但是如果你想在日期之间找到时间,考虑一下库。

根据

检查我在这里写的代码:


您还可以使用以下内容:

$now = new DateTime();
$status_date = new DateTime($row['status_date']);
$diff = $now->diff($status_date);
然后可以将任何dateInterval属性或函数与$diff一起使用

文件:

因为您试图减去的两个变量只是字符串。不能从一个字符串中减去另一个字符串,PHP会将它们转换为0。检查上面的评论,你的问题与另一个问题重复。
$now = new DateTime();
$status_date = new DateTime($row['status_date']);
$diff = $now->diff($status_date);