欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP中使用date获取上月最后一天出现的问题

程序员文章站 2022-05-29 09:47:46
上次做项目时,发现一个问题,这里记录一下: 问题: 在使用date函数获取上一个月最后一天或下个月最后一天时,如果当前日期是31号,获取的数据有问题。 // 2019-12-01 正确应该是 2019-11-30 date('Y-m-d', strtotime('+1 month', strtoti ......

 

上次做项目时,发现一个问题,这里记录一下:

问题:

在使用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')));