奇怪的PHP 5.3问题与日期差异计算天数的差异

Bug*_*net 7 php datetime php-5.3

我正在经历一个相当奇怪的问题,使用PHP 5.3的日期差异函数来计算两个日期之间的天数差异.以下是我的代码:

$currentDate = new DateTime(); // (today's date is 2012-1-27)
$startDate = new DateTime('2012-04-01');

$diff = $startDate->diff($currentDate);

$daysBefore = $diff->d;

echo $daysBefore; 
Run Code Online (Sandbox Code Playgroud)

上面的代码显示4作为$ daysBefore变量的值.

为什么PHP在2012年1月27日到2012年4月1日之间显示4天的差异,显然这些日期之间还有更多天.

难道我做错了什么?

FtD*_*Xw6 5

DateInterval::$d是间隔的天数部分,而不是差异的总天数.为此,你想要DateInterval::$days,所以:

$daysBefore = $diff->days;
Run Code Online (Sandbox Code Playgroud)