目前最后几年的日期是2天。换句话说,如果我今天在2016年8月14日运行报告,那一天(星期日)的去年日期应该是2015年8月16日,它将于2015年8月14日显示。
目前的代码是
$date = new DateTime($current_time);
$day = $date->format('l');
$date->sub(new DateInterval('P1Y')); // back 1 year
$date->modify('next ' . $day);
$date->modify('next ' . $day);
由于P1Y在阅读之后没有考虑到闰年和其他一些事情,我读到添加下面添加的内容修复了这个问题,但它并没有解决它。
$date = new DateTime($current_time);
$i = new DateInterval('P1Y');
$now = new DateTime;
while ($date >= $now) {
echo $date->format('c') . PHP_EOL;
$date = $date->sub($i);
}
这段代码给了我相同的2015年8月14日。
有人可以告诉我我做错了什么吗?