Php 减去两个日期

Php subtract two dates

我正在从 mysql 数据库中获取 $status_date,当我回显 $status_date 时,它看起来像这样 -> 2016-01-08 22:18:14。我正在设置 $now,当我回显时它看起来像这样 -> 2016-01-08 22:43:27。我想从 $now 中减去 $status_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 returns 这个 -> 0

为什么不做减法?

日期不会这样减去。将两个日期转换为时间,相减,然后转换回日期。

$now = strtotime(date("Y-m-d H:i:s"));
$status_date = strtotime($row['status_date']);
$x = date($now-$status_date);

但是,如果您想要获取日期之间的时间,请考虑 moment 库。

https://github.com/fightbulc/moment.php

根据http://php.net/manual/en/datetime.diff.php

检查我在这里写的这段代码: https://eval.in/499594

<?php 

$strStart = '2015-01-08 22:18:14'; // status  date
$strEnd = 'now';  

$dteStart = new DateTime($strStart); 
$dteEnd   = new DateTime($strEnd); 

$dteDiff  = $dteStart->diff($dteEnd); 

print $dteDiff->format("%Y-%m-%d %H:%I:%S"); 

thre result is smth like : 01-0-0 00:38:42

您也可以使用类似的东西:

$now = new DateTime();
$status_date = new DateTime($row['status_date']);
$diff = $now->diff($status_date);

然后您可以将任何 dateInterval 属性或函数与 $diff 一起使用。

文档:http://php.net/manual/es/datetime.diff.php http://php.net/manual/es/class.dateinterval.php