简体   繁体   中英

Laravel Eloquent find rows where date older than 2 days

I'm trying to fetch rows based on the "created_at" field that are older than (for example) 2 days.

I'm using Laravel Eloquent. Can somebody help me with this?

您可以使用Carbon subDays()如下所示:

$data = YOURMODEL::where('created_at', '<=', Carbon::now()->subDays(2)->toDateTimeString())->get();

You can use the whereDate() eloquent method to run a query against dates.

Model::whereDate('created_at', '<=', now()->subDays(2)->setTime(0, 0, 0)->toDateTimeString())->get();

The now() is a laravel helper function to get a carbon instance of the current date and time.

NOTE: We set the time using the setTime() method so that it starts from the beginning of the day.

Update : It is also possible to use ->startOfDay() .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM