如何使用 Carbon 获取最近 30 天的数组。我试图生成一个日期数组以与日期上的数据库结果进行比较,以填补记录没有值的空白
我有这个片段或多或少地返回所需的结果,但我想知道是否有更好的方法
$start = Carbon::now()->subDays(30);
for ($i = 0 ; $i < 30 ; $i++) {
$dates[] = $start->copy();
$start->addDay();
}
dd($dates);
如何使用 Carbon 获取最近 30 天的数组。我试图生成一个日期数组以与日期上的数据库结果进行比较,以填补记录没有值的空白
我有这个片段或多或少地返回所需的结果,但我想知道是否有更好的方法
$start = Carbon::now()->subDays(30);
for ($i = 0 ; $i < 30 ; $i++) {
$dates[] = $start->copy();
$start->addDay();
}
dd($dates);
你答对了。不过,您可以通过传递$i给addDays:
$start = Carbon::now()->subDays(30);
for ($i = 0 ; $i <= 30; $i++) {
$dates[] = $start->copy()->addDays($i);
}
顺便说一句,foreach带有 a 的 a可能比通用循环range更容易阅读。for
$start = Carbon::now()->subDays(30);
foreach (range(0, 30) as $day) {
$dates[] = $start->copy()->addDays($day);
}
甚至是map:
$start = Carbon::now()->subDays(30);
$dates = array_map(fn ($day) => $start->copy()->addDays($day), range(0, 30));