Laravel 当当前日期早于 table 中的特定日期时,自动更新 table 中的字段
Laravel auto update a field in the table when current date is more than a specific date in the table
当当前日期超过 table 中的另一个特定字段时,我正在尝试更新数据库 table 中的特定字段。
我的table"task":
id |..... | startDate | endDate | status
---|------|------------|-----------|--------
1 |..... | 2019/03/13 | 2019/03/14| Process
因此,如果当前日期时间 > 结束日期,将自动实时更新状态 "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
提前致谢
P.S - 我没有使用 Carbon
我建议使用调度程序,运行 使用 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
当当前日期超过 table 中的另一个特定字段时,我正在尝试更新数据库 table 中的特定字段。
我的table"task":
id |..... | startDate | endDate | status
---|------|------------|-----------|--------
1 |..... | 2019/03/13 | 2019/03/14| Process
因此,如果当前日期时间 > 结束日期,将自动实时更新状态 "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
提前致谢
P.S - 我没有使用 Carbon
我建议使用调度程序,运行 使用 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