PHP中使用date获取上月最后一天出现的问题
上次做项目时,发现一个问题,这里记录一下:
问题:
在使用date函数获取上一个月最后一天或下个月最后一天时,如果当前日期是31号,获取的数据有问题。
// 2019-12-01 正确应该是 2019-11-30 date('Y-m-d', strtotime('+1 month', strtotime('2019-10-31'))); // 2019-10-01 正确应该是 2019-09-30 date('Y-m-d', strtotime('-1 month', strtotime('2019-10-31')));
解决办法:
可以使用“last day of”来获取最后一天。
// 2019-11-30 date('Y-m-d', strtotime('last day of +1 month', strtotime('2019-10-31'))); // 2019-09-30 date('Y-m-d', strtotime('last day of -1 month', strtotime('2019-10-31')));
测试后发现获取第一天数据也有同样的问题:
相应的可以使用“first day of”来获取第一天数据。
// 2019-11-01 date('Y-m-d', strtotime('first day of +1 month', strtotime('2019-10-31'))); // 2019-09-01 date('Y-m-d', strtotime('first day of -1 month', strtotime('2019-10-31')));
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步