加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP.为什么月份上的日期对象差异在12个月后重置为0?

发布时间:2020-12-13 15:57:06 所属栏目:PHP教程 来源:网络整理
导读:今天是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($dat
今天是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年和0个月前,而不仅仅是12个月前.如果你也想看到这一年,你就会明白这一年.

Note:

The DateInterval::format() method does not recalculate carry over points in time strings nor in date segments. This is expected because it is not possible to overflow values like “32 days” which could be interpreted as anything from “1 month and 4 days” to “1 month and 1 day”.

您可以使用%a作为总天数,但我找不到总月数的标记.

Reference

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读