减去时间PHP

Subtracting time PHP

我在 PHP 中减去时间时遇到问题。

我的时间是:

$行['exp'] = 2017-03-31

和日期('Y-m-d') = 2017-03-10(今天)

$datetime1 = strtotime($row['exp']);
$datetime2 = strtotime(date('Y-m-d'));
$secs = $datetime1 - $datetime2;// == <seconds between the two times>
$days = $secs / 86400;
echo $days;

我的结果是:

36520.958333333333

改用 PHP DateTime class,它内置函数,例如 DateTime::diff,这似乎是您要找的。 DateTime 对象也更易于使用。

$today = new DateTime('today');
$date = new DateTime("2017-03-31");

echo $today->diff($date)->d; // 21

只需将您的 $row['exp'] 作为 $date 的参数传递,这样您就可以得到

$date = new DateTime($row['exp']);

虽然,我无法使用您的给定输入重现您的问题,this live demo 输出“20.958333333333”(差不多正确,您只需要 ceil() 它)。

Live demo

参考资料