今天是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;
谢谢
日期是1 Year
和0 Months
以前,而不仅仅是12个月以前。如果你也能看到年份,你就会明白了。
注意:
DateInterval::format()方法不会重新计算时间字符串和日期段中的结转点。这是预期的,因为不可能溢出像"32天"这样的值。可以理解为"1个月零4天";到"1个月零1天"。
您可以使用%a
表示总天数,但我找不到总月数的标记。