strtotime('-X month')有可能会导致错误
获取正确的方法如下
<?php
# 必须用上月份最初 算得才是一个月后 不然会按现在的时候算
date_default_timezone_set('Asia/Shanghai');
$first_day_of_month = date('Y-m',time());
$t = strtotime($first_day_of_month);
echo date("Y-m-01 00:00:00",strtotime('-1 month',$t)).'<br>';
echo date("Y-m-01 00:00:00",strtotime('-2 month',$t)).'<br>';
echo date("Y-m-01 00:00:00",strtotime('-3 month',$t)).'<br>';
echo date("Y-m-01 00:00:00",strtotime('-4 month',$t)).'<br>';
echo date("Y-m-01 00:00:00",strtotime('-5 month',$t)).'<br>';
echo date("Y-m-01 00:00:00",strtotime('-6 month',$t)).'<br>';
# 必须用上一天的最初 算得才是今天过后 不然会按现在的时候算一天后 也就是变成 3600*24+time()
现在的时间是<?php echo time(); ?>
今天0点<?php echo strtotime(date('Y-m-d')); ?>
明天0点<?php echo strtotime('+1 day', strtotime(date('Y-m-d') )); ?>