当当前日期大于表中的另一个特定字段时,我正在尝试更新数据库表中的一个特定字段。
我的表"task":
id |..... | startDate | endDate | status
---|------|------------|-----------|--------
1 |..... | 2019/03/13 | 2019/03/14| Process
因此,如果current datetime > endDate,则无需任何点击即可实时自动更新状态为"Expired“。
我确实在Kernel.php中创建了一个调度程序,但是什么也没有发生。我的调度器:
$schedule->call(function () {
DB::table('tasks')->whereDate('endDate', '<', date('Y/m/d H:i'))->update(['status', 'Expired']);
})->everyMinute();
我的结束日期值和格式:
2019/03/12 17:00
提前谢谢你
附注:我没有使用碳
发布于 2019-03-14 22:37:55
我建议使用调度程序,并运行使用DB的简单命令。你可以每隔几分钟运行一次该任务,它就会完成这项工作。
DB::table('task')->whereDate('endDate', '<', now())->update(['status' => 'expired']);
如果您不想使用Carbon,只需将now()
更改为date('Y-m-d H:i:s')
请记住将单个cron条目添加到启动调度程序。
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
https://stackoverflow.com/questions/55164922
复制相似问题