php date('Y-m-01', strtotime('-1 month')) 获取上个月第一天日期时遇到月尾时的特殊情况
2024-11-18 16:32喜书

date('Y-m-01', strtotime('-1 month')) 10月31日不好用

这个问题的原因是当你在31号的日期上减去一个月时,可能会导致日期超出该月的最大天数。例如,10月31日减去一个月,会变成9月31日,但是9月没有31号,所以会出现错误,还会变成 10月1日。

解决方法:使用date函数的m格式来获取当前月份的第一天,然后减去一个月。

date('Y-m-01 00:00:00', strtotime('first day of -1 month'));