Laravel Carbon,获取最近十天的问题

Laravel Carbon, problem with getting the last ten days

我需要获取最近十天的日期。为此,我这样做

$start = Carbon::now()->subDays(10);
for ($i = 0; $i <= 9; $i++) {
     $day = $start->addDays($i)->format('Y-m-d');
     print $day.' ';
}

这是结果!!

2020-02-01 2020-02-02 2020-02-04 2020-02-07 2020-02-11 2020-02-16 2020-02-22 2020-02-29 2020-03-08 2020-03-17

为什么会跳过几天?

因为您要添加 1 天,然后添加 2 天,然后添加 3 天,然后添加 4 天...您应该每次添加一天:

$start = Carbon::now()->subDays(10);
for ($i = 0; $i <= 9; $i++) {
     $day = $start->addDays(1)->format('Y-m-d');
     print $day.' <br/>';
}

输出:

2020-02-02
2020-02-03
2020-02-04
2020-02-05
2020-02-06
2020-02-07
2020-02-08
2020-02-09
2020-02-10
2020-02-11

编辑:addDays() 修改调用它的变量,因此代码实际上在没有 $day 的情况下工作:

$start = Carbon::now()->subDays(10);
for ($i = 0; $i <= 9; $i++) {
  $start->addDays(1);
  print $start->format('Y-m-d') . '<br/>';
}