为什么DateTime :: diff在这些日期之间返回0天?

时间:2011-02-12 03:04:00

标签: php datetime

考虑以下测试用例:

$start = new DateTime("2011-02-25");
$end = new DateTime("2011-03-25");

$interval = $end->diff($start);


echo "INTERVAL = ".$interval->format("%d");  // Should give me the 
                                             // interval in days, right?
echo "START = ".$start->format("Y-m-d");
echo "END = ".$end->format("Y-m-d");

结果是:

INTERVAL = 0  <---------- WTF????
START = 2011-02-25
END = 2011-03-25

diff()似乎声称2011年2月25日至2011年3月25日期间为0天!

我一定是在忽略一些事情。但什么?

1 个答案:

答案 0 :(得分:9)

您需要使用格式代码'a'd是差异中的天数,而不是净天数。在dateinterval对象中,days是相应的字段。在您的示例中,您将看到m = 1