Как сделать запрос между двумя x днями, используя Laravel и Carbon? - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь получить данные за последние 30-60 дней. Это означает, что я пропускаю дни с 0 по 30 и все, что осталось за днем ​​60.

Мой текущий прогресс таков:

$previousMonth = DB::table('table')
->select('table.*')
->whereBetween('date', [Carbon::now()->subDays(30), Carbon::now()->subDays(60)])
->get();

return $previousMonth;

"date" имеет тип данных DATETIME в mysql база данных.

Ответы [ 2 ]

2 голосов
/ 19 февраля 2020

Попробуйте startOfDay()

use Carbon\Carbon;

$previousMonth = DB::table('table')
->select('table.*')->whereBetween('date', [Carbon::now()->subDays(60)->startOfDay(), Carbon::now()->subDays(30)->startOfDay()])->get();

return $previousMonth;

Ссылка

http://carbon.nesbot.com/docs/

2 голосов
/ 19 февраля 2020

Измените порядок, потому что Carbon::now()->subDays(30) больше Carbon::now()->subDays(60), и вы можете использовать startOfDay(), чтобы получить начало дня:

->whereBetween('date', [Carbon::now()->subDays(60)->startOfDay(), Carbon::now()->subDays(30)->startOfDay()])
...