【问题标题】:How do I use eloquent for TIMEDIFF?如何将 eloquent 用于 TIMEDIFF?
【发布时间】:2024-01-21 23:22:01
【问题描述】:
public function fire()
{       
    Log::info('Delete abandoned builds.');

    $builds = Build::where('status', Build::STATUS_ABANDONED)
                    ->whereRaw (TIMEDIFF(DATE_FORMAT(NOW(), '%Y-%m-%d %h:%i:%s'), created_at) >= '01:00:00')->get();
                        $buildRepository->delete($build);
    $buildRepository = new BuildRepository();

}

基本上,我必须在它们被放弃 1 小时后删除它们。它给了我一个错误,因为 TIMEDIFF 未定义。谁能告诉我如何解决这个问题?

【问题讨论】:

    标签: php laravel time timestamp eloquent


    【解决方案1】:

    您可以使用 Eloquent 和 DateTime 代替 TIMEDIFF

    $date = new DateTime;
    $date->modify('-60 minutes');
    $formatted_date = $date->format('Y-m-d H:i:s');
    
    DB::table('builds')
      ->where('status', Build::STATUS_ABANDONED)
      ->where('created_at','>=',$formatted_date)
      ->delete();
    

    【讨论】:

      最近更新 更多