过去日期的碳数组
Carbon array of past dates
如何使用 Carbon 获取最近 30 天的数组。我试图生成一个日期数组来与日期的数据库结果进行比较,以填补记录没有值的空白
我有这个片段 returns 或多或少达到了预期的结果,但我想知道是否有更好的方法
$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
和 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));
如何使用 Carbon 获取最近 30 天的数组。我试图生成一个日期数组来与日期的数据库结果进行比较,以填补记录没有值的空白
我有这个片段 returns 或多或少达到了预期的结果,但我想知道是否有更好的方法
$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
和 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));