如何在PHP中减去两个日期

alb*_*can 8 php datetime

我想在PHP中减去两个日期

例如:

$date1 = 08/16/2013;
$date2 = 08/23/2013;
$answer = date2 - date1;
Run Code Online (Sandbox Code Playgroud)

$答案应该是7,我该怎么做?非常感谢

Gla*_*vić 17

开始使用DateTime类进行日期/时间操作:

$date1 = new DateTime('08/16/2013');
$date2 = new DateTime('08/23/2013');
$diff = $date1->diff($date2);
print_r($diff); // or $diff->days
Run Code Online (Sandbox Code Playgroud)

输出:

DateInterval Object
(
    [y] => 0
    [m] => 0
    [d] => 7
    [h] => 0
    [i] => 0
    [s] => 0
    [invert] => 0
    [days] => 7
)
Run Code Online (Sandbox Code Playgroud)

阅读更多DateTime:diff().


请注意,各种strtotime()示例在日期/时间差计算中不正确.最简单的例子是2013-03-31 21:00和之间的区别2013-03-30 21:00.对于肉眼来说,这确实是1天的差异,但是如果你减去这两个日期,你将获得几天的82800秒数0.95833333333333.这是因为从冬季到夏季的时间变化.DateTime正确处理闰年和时区.