PHP 碳 Laravel - 编号 022017

PHP Carbon Laravel - No 022017

我需要获取从当月开始的最后 13 个月,但是当我尝试下面的代码时。除了 022017 以外,它每个月都会收到。关于原因有什么建议吗?

for ($i = 13; $i > 0; $i--) {
    $dates->addDate(Carbon::now()->subMonth($i)->format('mY'));
}

结果:

0 => "082016"
1 => "092016"
2 => "102016"
3 => "112016"
4 => "122016"
5 => "012017"
6 => "032017"
7 => "042017"
8 => "052017"
9 => "062017"
10 => "072017"
11 => "082017"

因为你用的是Carbon::now()而且你是29号发的这个问题。它将跳过 2 月,因为该月只有 28 天。

像这样的东西应该可以工作:

$now = Carbon::now();
$month = $now->day = 1;
for ($i = 13; $i > 0; $i--) {
    $month->subMonth();
    $dates->addDate($month->format('mY'));
}