今天是2015-07-08。
当我运行以下内容时,它会返回0
。它不应该返回12
吗?该日期是12个月前。同样,如果$date='2014-06-03'
它返回1
。它应该不是13
吗?过去12个月内的所有日期都是正确计算的。
$date = '2014-07-03';
$datetime1 = new DateTime(date('Y-m-01', strtotime($date)));
$datetime2 = new DateTime(date('Y-m-d'));
$interval = $datetime1->diff($datetime2);
$months_ago = $interval->format('%m');
echo "\n".$months_ago;
谢谢
答案 0 :(得分:1)
日期为1 Year
和0 Months
前,而不仅仅是12个月前。如果你也看到这一年,你就会得到它。
注意:
DateInterval :: format()方法不会重新计算时间字符串中的结转点或日期段。这是预期的,因为不可能溢出像#32; 32天"可以解释为" 1个月和4天"至" 1个月和1天"。
您可以使用%a
作为总天数,但我找不到总月数的标记。
<强> Reference 强>