今天是3月30号,使用strtotime("-1 month", time())得到的不是2月份,而是3月份 ( 3月30日,减去1个月,得到的是3月2日 )。解决方法是可以把时间戳先转换成年月,$t = date('Y-m');然后再使用strtotime("-1 month", strtotime($t))就可以了。在转换的时候不要使用年月日去转换,用年月转换就正确了,因为每个月的天数不一样,所以带天数在转换的时候就可能会出错。
$t = date('2017-02');
print date('Y-m-d',strtotime("-1 month", strtotime($t)));