Qazi Ammar
Qazi Ammar

Reputation: 1526

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

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]);

Upvotes: 2

Views: 131

Answers (1)

N69S
N69S

Reputation: 17216

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]);

Upvotes: 2

Related Questions