datetime显示额外的一天

时间:2014-01-16 12:46:09

标签: php datetime

我正在使用此代码计算2个日期之间的天数,月数等

$datetime1 = new DateTime('2013-12-01');
$datetime2 = new DateTime('2014-08-01');

$interval = $datetime1->diff($datetime2);
$year = $interval->format('%y');
$month = $interval->format('%m');
$day = $interval->format('%d');

var_dump($interval->days, $year, $month, $day);

我得到的输出是:

int(243) 
string(1) "0" 
string(1) "8" 
string(1) "1"

为什么还有一天额外的?对我而言似乎只有8个月了?

2014-01-01 - 2014-09-01 //8 months 0 days..
2014-04-01 - 2014-12-01 //7 months 30 days...

1 个答案:

答案 0 :(得分:1)

From the document ,这是预期的。

  

注意:DateInterval :: format()方法不会重新计算进位数   超过时间字符串或日期段。这是预料之中的   因为不可能溢出像“32天”这样的值   可以解释为“1个月到4天”到“1个月”之间的任何内容   和1天“。