Как получить все результаты, которые попадают под каждую неделю, основываясь на заданной дате за последние 6 месяцев, используя laravel и carbon - PullRequest
0 голосов
/ 23 мая 2018

У меня есть много записей, создаваемых каждый день, и я хотел бы знать, сколько записей заполняется за каждую неделю на основе созданной даты.Возможно, запрос будет выглядеть примерно так:

$records_weekly = DB::table('records')

   ->where('created_at', '>=', Carbon::now()->subMonths(4))

   ->groupBy('week')

   ->get()

   ->toArray();

1 Ответ

0 голосов
/ 23 мая 2018

Я надеюсь, что у вас есть красноречивый:

$date = Carbon::now();

$records_weekly = Records::all()->where('created_at', '>=', Carbon::now()->subMonths(4))
                            ->groupBy(function($date) {
                                return Carbon::parse($date->created_at)->format('W');
                            })->sortKeysDesc();

Это будет вывод продукта, как, примечание 20, 21, 22 - номера недели

{
    "20": [...],
    "21": [...],
    "22": [
           {
            "id": 19,
            .....
            "created_at": "2018-05-31 07:46:33",
            "updated_at": "2018-05-23 07:46:33"
           }
          ]
}
...