编程语言
首页 > 编程语言> > PHP strtotime -1 month 获取上个月月份踩坑

PHP strtotime -1 month 获取上个月月份踩坑

作者:互联网

项目中需要循环获取前几个月,但是前几天还好好的,今天突然发现错误,直接上代码(当前日期:2020-12-31)

 

 

为什么呢今天不行了呢?打印 $i 也是正常的,查阅资料之后发现当获取上个月的日期时 直接使用 date('Ym', strtotime("-1 month") 是有坑的:

当上一个月或者下一个月没有今天的日时,会输出错误,比如今天是12月31号,但是11月份没有31号,此时date('Y-m-d',strtotime("-1 month")); 输出的结果就是 2020-12-01

同理,当在3月31号/5月31号/7月31号/10月31号/12月31号执行date('Y-m-d',strtotime("-1 month"))时,得到的结果是 3月1号/5月1号//7月1号/10月1号/12月1号。

如何正确的获取上一个月份?
因为每月都有1号,如果需要获取上一个月的月份,可以使用以下的方式获取:

date('Ym', strtotime(date('Y-m-01') . " - 1 month"));


 

 

同样如果获取上个月的第一天  date('Y-m-01', strtotime(date('Y-m-01') . " - 1 month")); 而不能简单使用 date('Y-m-01', strtotime("-1 month"));

请各位小伙伴避免采坑~

 

 

原文地址:https://blog.csdn.net/weixin_44743841/article/details/112006791

标签:01,31,month,strtotime,12,date,PHP
来源: https://www.cnblogs.com/Noble-zeng/p/15246401.html