考虑以下测试用例:
$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天!
我一定是在忽略一些事情。但什么?
答案 0 :(得分:9)
您需要使用格式代码'a'
。 d
是差异中的天数,而不是净天数。在dateinterval对象中,days
是相应的字段。在您的示例中,您将看到m = 1