Eloquent, update all records where hours (time) difference between update_at and current time is greater than 24

Viewed 21

I need to update all the records where update_at and current time have a difference greater than 24 hours. Actually I am updating the business as feature only for 24 hours after that businesses will automatically will be unsubscribed from feature. So I want to updated all the businesses like this.

 Business::where('is_featured', true)
        ->whereDate('updated_at', '<', now()) // need to calculate difference of 24 hours
        ->update(['is_featured' => false]);
1 Answers

Using carbon, substract 24 hours

Business::where('is_featured', true)
    ->whereDate('updated_at', '<', now()->subHours(24))
    ->update(['is_featured' => false]);

or subDay()

Business::where('is_featured', true)
    ->whereDate('updated_at', '<', now()->subDay())
    ->update(['is_featured' => false]);
Related