I need to get the date of the last ten days. To do so I do this
JavaScript
x
$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:
JavaScript
$start = Carbon::now()->subDays(10);
for ($i = 0; $i <= 9; $i++) {
$day = $start->addDays(1)->format('Y-m-d');
print $day.' <br/>';
}
Outputs:
JavaScript
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
:
JavaScript
$start = Carbon::now()->subDays(10);
for ($i = 0; $i <= 9; $i++) {
$start->addDays(1);
print $start->format('Y-m-d') . '<br/>';
}