2
Я хочу получить записи, которые старше 2 дней.сравнение даты с laravel 4.2
Мои текущие записи базы данных для added_to_cart_at
поле только один ряд от 2016-05-01 12:23:23
Я использовал ниже код
$date = new DateTime;
$date->modify('-2 days');
$formatted_date = $date->format('Y-m-d H:i:s');
echo $formatted_date; // prints 2016-04-29 14:27:42
$result = DB::table('cart_reminder')->whereDate('added_to_cart_at','<=',$formatted_date)->get();
foreach ($result as $row)
{
echo $row->user_email;
}
В идеале выше where
условие должно терпеть неудачу и должен возвращать 0 записей. Но он извлекает запись. Редакция:
$result = DB::table('cart_reminder')->whereDate(\Carbon\Carbon::now()->subDays(2)->toDateString())->get();
foreach ($result as $row)
{
echo $row->user_email;
}
печатает ошибка
production.ERROR: exception 'ErrorException' with message 'Missing argument 2 for Illuminate\Database\Query\Builder::whereDate(), called in
Почему?
Я не думаю, что вы должны использовать 'whereDate()' здесь, только регулярные 'где()'. –
изменен. все равно он печатает адрес электронной почты, и условие становится истинным. –
Учитывая, что даты Laravel хорошо работают с Carbon, вы пытались передать объект Carbon вместо форматированной строки? – ThePurpleK