I need to get the date of the last ten days. To do so I do this
$start = Carbon::now()->subDays(10); for ($i = 0; $i <= 9; $i++) { $day = $start->addDays($i)->format('Y-m-d'); print $day.' '; }
This is the result!!
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
Why it skips some days?
Advertisement
Answer
Because you’re adding 1 day, then 2 days, then 3 days, then 4 days… You should just add one day each time:
$start = Carbon::now()->subDays(10); for ($i = 0; $i <= 9; $i++) { $day = $start->addDays(1)->format('Y-m-d'); print $day.' <br/>'; }
Outputs:
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()
modifies the variable it is called on, so the code actually works without $day
:
$start = Carbon::now()->subDays(10); for ($i = 0; $i <= 9; $i++) { $start->addDays(1); print $start->format('Y-m-d') . '<br/>'; }