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

Pek*_*ica 3 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");
Run Code Online (Sandbox Code Playgroud)

结果是:

INTERVAL = 0  <---------- WTF????
START = 2011-02-25
END = 2011-03-25
Run Code Online (Sandbox Code Playgroud)

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

我必须忽视一些事情.但是什么?

Foo*_*Bah 9

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