У меня есть следующий запрос, но он возвращает пустой массив (я точно знаю, что этот запрос должен вернуть одну запись)
$created_at = date("Y-m");
$content = ContentModel::where('userId', $id->_id)
->where('created_at', 'like', "%{$created_at}%")
->orderBy('fav', 'DESC')
->get();
Если я удалю ->where('created_at', 'like', "%{$created_at}%")
он возвращает все нормально, но я хочу контент, который был в этом году и месяце, но запрос не работает, когда я вставляю это.
Дата в базе данных в формате ISODate
"created_at" : ISODate("2015-02-03T16:29:26.965Z")
Я предполагаю, что это из-за формата ISODate. Как получить нужный мне результат?
Спасибо
Используйте этот код вместо:
$created_at = new DateTime(date('F jS Y h:i:s A', strtotime('first day of ' . date('F Y'))));
$content = ContentModel::where('userId', $id->_id)
->where('created_at', '>', $created_at)
->orderBy('fav', 'DESC')
->get();
В этом коде $created_at
переменная указывает на 1-е число текущего месяца.
Других решений пока нет …