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

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

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

 

 

为什么呢今天不行了呢?打印 $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"));


PHP strtotime -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

上一篇:spring-boot 速成(12) - 如何注入多个redis StringRedisTemplate


下一篇:eclipse正常启动tomcat, 访问http://localhost:8080 却报404错误