Laravel ORM, сравнение даты
Я использую Laravel Framework
Мне нужны все строки за этот день. Вот что я пробовал:
DB:: table ('users') → где ('created_at', ' > =', date ('Y-m-d H: i: s'))
поле created_at представлено в базе данных в формате: Y-m-d H: i: s.
Ответы
Ответ 1
Хммм... был хороший ответ на этот вопрос, который, кажется, теперь исчез. *
Это было что-то вроде этого:
User::where('created_at', '>=', new DateTime('today'))
Примечание. Если вы помещаете этот код в файл с пространством имен или можете использовать пространство имен в будущем, вы должны префикс класса DateTime обратную косую черту: new \DateTime('today')
.
*
https://stackoverflow.com/questions/15052679/laravel-framework-how-to-get-today-queries
Ответ 2
date('Y-m-d H:i:s')
возвращает дату сейчас.
Если вы хотите получить результаты с начала дня, вы можете заменить его на date('Y-m-d').' 00:00:00'
.
Если вы хотите получить результаты за последние 24 часа, вы можете заменить его на date('Y-m-d H:i:s',time()-86400)
(86400 = 24 * 60 * 60)
Ответ 3
Для тех, кому нужно только сравнить дату без времени, Lavarel предоставил удобную функцию whereDate:
User::whereDate('created_at', '>=', date('Y-m-d'));
http://laraveldaily.com/eloquent-date-filtering-wheredate-and-other-methods/
Ответ 4
Я знаю, что тема старая, но может кто-то попытается найти решение из поисковых систем.
Вы можете использовать:
User::whereDate('created_at', '=', Carbon::today()->toDateString());
Вы можете посетить эту ссылку, если хотите узнать больше о сравнении даты в Laravel, используя где.
Яркая фильтрация даты: whereDate() и другие методы