PHP strtotime获取上个月月份的问题

发布时间 2023-03-31 16:30:15作者: dreamboycx

在PHP获取上个月时,我们常常使用

strtotime('-1 month');

  或者

strtotime('last month');

  来获取上个月的同一天的时间

但是前28天内是没有问题的,当上个月或者下个月不存在同一天的时候,就会出现问题,如果今天是3月31日,使用该方法时取的将会是3月3日的时间,因为程序获取的上个月只有28天,时间会溢出到3月份,29日就是3月1日,30日是3月2日,31日就是3月3日,所以获取上个月时不采用该方法,更好的方法是取出上个月的第一天的时间戳:

strtotime(date('Y-m-01') . "-1 month");

  

取出上个月的最后一天的时间戳:

strtotime(date('Y-m-d 23:59:59', strtotime(date('Y-m-01') . '-1 day'))); 

  再来比较