0

如何使用 Carbon 获取最近 30 天的数组。我试图生成一个日期数组以与日期上的数据库结果进行比较,以填补记录没有值的空白

我有这个片段或多或少地返回所需的结果,但我想知道是否有更好的方法

  $start = Carbon::now()->subDays(30);
  for ($i = 0 ; $i < 30 ; $i++) {
        $dates[] = $start->copy();
        $start->addDay();
  }

  dd($dates);
4

1 回答 1

6

你答对了。不过,您可以通过传递$iaddDays

$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));
于 2015-08-23T20:46:14.287 回答