我在使用 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;
上面的代码显示 4 作为 $daysBefore 变量的值。
为什么 PHP 在 2012 年 1 月 27 日和 2012 年 4 月 1 日之间显示了 4 天的差异,而这些日期之间显然还有更多的天数。
我做错了什么吗?
最佳答案
DateInterval::$d
是间隔的天数部分,不是总天数之差。为此,您需要 DateInterval::$days
,所以:
$daysBefore = $diff->days;
关于php - 日期差异计算天数差异的奇怪 PHP 5.3 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034674/