Получить строки, в которых дата создания старше 14 дней

В этом случае:

В моей базе данных есть таблица deployments. В строках таблицы также есть поле created_at. Теперь я хотел бы выбрать все строки, где created_date старше 14 дней. Но я не знаю, как это сделать с помощью Carbon. Мой запрос теперь выглядит так:

$passed = Deployment::where('created_at', '>=', );

Кто-нибудь может мне с этим помочь?


person nielsv    schedule 07.12.2015    source источник
comment
Что-то вроде этого: Carbon::now()->subWeeks(2)   -  person LuMa    schedule 07.12.2015


Ответы (2)


Вы можете использовать метод subDays():

$passed = Deployment::where('created_at', '<=', Carbon::now()->subDays(14)->toDateTimeString());
person Alex    schedule 07.12.2015
comment
Кажется, это работает даже без ->toDateTimeString() в конце. Carbon::now()->subDays(14). toDateTimeString() нужно? - person Neel; 01.01.2017
comment
Я знаю, что этот поток довольно старый, но проверка на >= вернет элементы младше 12 дней, вы говорите, что хотите проверить элементы, которые старше, поэтому я думаю, что вам следует проверить <=. - person Daniele Sassoli; 21.03.2017
comment
toDateTimeString() на самом деле неправильно. Я предполагаю, что первоначальный автор использует MySQL в качестве БД, однако, когда вы используете, например, MongoDB, вы должны передать объект Carbon, чтобы он был обработан правильно. - person Hlorofos; 01.11.2018

Вы можете использовать Carbon::now()->subDays(14)

    $passed = Deployment::where('created_at', '>=', Carbon::now()->subDays(14)->toDateTimeString());

Вы можете узнать больше о функциях Carbon здесь Документация по Carbon

person Mauran Muthiah    schedule 07.12.2015