Как получить диапазон дат между столбцом create_at (формат столбца по умолчанию: Ymd H: i: s), предоставленным в laravel tabel? - PullRequest
0 голосов
/ 27 февраля 2019

Я боролся с диапазоном дат между (один столбец) колонкой create_at, до сих пор я пробовал этот

$startDate = date('Y-m-d', strtotime($request->start_date));
$endDate = date('Y-m-d', strtotime($request->end_date));
....->whereBetween('created_at', [$startDate,$endDate])

Формат made_at по умолчанию (Ymd H: i: s), в данных постаЯ получаю этот формат (YMD)

Я знаю, что это неправильный запрос, но как я должен думать?

Должен ли я использовать ->whereRaw()?или что-то с ->whereDate?

Пожалуйста, помогите

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

WAHH .... очень глупо с моей стороны, не пытаясь все, что я задавал вопрос, это было так просто, как кажется: -

->where('created_at', '>=', $fromDate->toDateString())->where('created_at', '<=', $toDate->toDateString())

Большое спасибо и очень сожалею о моей глупости.

0 голосов
/ 27 февраля 2019

у вас есть специальная функция в Laravel только для этой цели whereDate().Вы можете использовать его следующим образом:

$startDate = date('Y-m-d', strtotime($request->start_date));
$endDate = date('Y-m-d', strtotime($request->end_date));
....->whereDate('created_at', '>', $startDate)->whereDate('created_at', '<', $endDate)

Кроме того, вы можете использовать <= и >= для включения ограничений.

И не беспокойтесь о "По умолчанию создан формат _(Ymd H: i: s), в данных поста я получаю этот формат (Ymd) ", потому что функция сравнивает только часть даты, а не часть метки времени, поэтому вы можете идти.

Ссылка здесь

0 голосов
/ 27 февраля 2019

для проверки между двумя датами вы должны использовать это:

$fromDate =Carbon::parse($request->start_date); 
$toDate = Carbon::parse($request->end_date);  

Model::whereBetween('created_at', [$fromDate->toDateString(), $toDate->toDateString()])->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...