strtotime('+1 month'),strtotime('-1 month') 碰到一个月中有28, 31天的就会有问题,比如 strtotime('+1 month', strtotime('2019-10-31')) 就会跳到 12月份去,而不是11月份;
从 PHP5.3 开始呢,date 新增了一系列修正短语,来明确这个问题,那就是”first day of” 和 “last day of” 解决了
strtotime('last day of -1 month')
strtotime("first day of +1 month")
可以智能的判断一个月份的最后一天是几号(28/29/30/31)
echo date("Y-m-d", strtotime("2017-02 first day of")).'<br>'; //2017-02-01
echo date("Y-m-d", strtotime("2017-02 last day of")).'<br>'; //2017-02-28
echo date("Y-m-d", strtotime("2017-05 last day of")).'<br>'; //2017-05-31
echo date("Y-m-d", strtotime("first day of")).'<br>'; //2021-06-01
echo date("Y-m-d", strtotime("last day of")).'<br>'; //2021-06-30