Laravel Cast Datetime на сегодняшний день - PullRequest
0 голосов
/ 30 ноября 2018

Добрый день всем,

Я делаю запрос whereBetween дат на eloquent, но у меня проблема с датой.

, если я выберу date_from to 2018-11-01 и date_to to 2018-11-29

и если у меня есть данные, которые были созданы в 2018-11-29 12:28:45, данные, созданные в это время даты, не будут включены из-за времени.есть ли способ привести created_at к date.

вот мой код:

Payable::with('details', 'transaction_type')
                        ->whereBetween('created_at', [$request->date_from, $request->date_to])
                        ->get();

заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 30 ноября 2018

Мне кажется, что в Laravel гораздо более понятный способ обработки дат - использование пакета Carbon.

$date_from = Carbon::createFromFormat('Y-m-d', $request->date_from)->startOfDay();
$date_to = Carbon::createFromFormat('Y-m-d', $request->date_to)->endOfDay();

Просто к сведению, столбец created_at при доступе через eloquent по умолчанию возвращает объект даты углерода.

Надеюсь, это поможет.

K

0 голосов
/ 10 июня 2019

Если вы не возражаете добавить дополнительные -> к вашим запросам, вы можете очень легко сделать это:

Payable::with('details', 'transaction_type')
         ->whereDate('created_at', '>=', $request->date_from)
         ->whereDate('created_at', '<=', $request->date_to)
         ->get();
0 голосов
/ 30 ноября 2018

Вы можете установить время для ваших переменных даты.

$request->date_from = $request->date_from . ' 00:00:00';
$request->date_from = $request->date_from . ' 23:59:59';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...