php获取上一个月的开始与结束时间遇到的问题

 改正之前:

$_lastMonthStart   = date('Y-m-1 00:00:00', strtotime("-1 month"));
$_lastMonthEnd     = date('Y-m-d H:i:s', strtotime('-1 sec', strtotime($_monthStart)));
$preMonthRange   = [$_lastMonthStart, $_lastMonthEnd];

想要的结果:上一个月的开始和结束时间这一范围。

出现的问题描述:5月31号获取到的上一个时间居然是5月1到5月31!!!正确的应该是4月1到4月30

问题原因分析:
问题出现在5.31这一天减去一个月不存在4.31,所以变成了5.1导致出错。

解决方法:
在上面定义一个’标准时间‘,即本月的1号。

改正之后:
$standardTime      = date('Y-m-1');
$_lastMonthStart   = date('Y-m-1 00:00:00', strtotime("-1 month", strtotime($standardTime)));
$_lastMonthEnd     = date('Y-m-d H:i:s', strtotime('-1 sec', strtotime($_monthStart)));
$preMonthRange   = [$_lastMonthStart, $_lastMonthEnd];

完美解决问题!

猜你喜欢

转载自www.cnblogs.com/liuqd001/p/9144413.html