Laravel Углерод, проблема с получением последних десяти дней - PullRequest
1 голос
/ 11 февраля 2020

Мне нужно получить дату последних десяти дней. Для этого я делаю это

$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 Ответ

3 голосов
/ 11 февраля 2020

Поскольку вы добавляете 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

Edit: addDays() изменяет переменную, к которой она вызывается, поэтому код фактически работает без $day:

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