Home > Blockchain >  Eloquent, update all records where hours (time) difference between update_at and current time is gre
Eloquent, update all records where hours (time) difference between update_at and current time is gre

Time:09-12

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

CodePudding user response:

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