首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当当前日期大于表中的特定日期时,Laravel会自动更新表中的字段

当当前日期大于表中的特定日期时,Laravel会自动更新表中的字段
EN

Stack Overflow用户
提问于 2019-03-14 22:21:54
回答 1查看 5.4K关注 0票数 0

当当前日期大于表中的另一个特定字段时,我正在尝试更新数据库表中的一个特定字段。

我的表"task":

代码语言:javascript
复制
id |..... | startDate  | endDate   | status
---|------|------------|-----------|--------
1  |..... | 2019/03/13 | 2019/03/14| Process

因此,如果current datetime > endDate,则无需任何点击即可实时自动更新状态为"Expired“。

我确实在Kernel.php中创建了一个调度程序,但是什么也没有发生。我的调度器:

代码语言:javascript
复制
 $schedule->call(function () {
            DB::table('tasks')->whereDate('endDate', '<', date('Y/m/d H:i'))->update(['status', 'Expired']);
        })->everyMinute();

我的结束日期值和格式:

代码语言:javascript
复制
2019/03/12 17:00

提前谢谢你

附注:我没有使用碳

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-14 22:37:55

我建议使用调度程序,并运行使用DB的简单命令。你可以每隔几分钟运行一次该任务,它就会完成这项工作。

代码语言:javascript
复制
DB::table('task')->whereDate('endDate', '<', now())->update(['status' => 'expired']);

如果您不想使用Carbon,只需将now()更改为date('Y-m-d H:i:s')

请记住将单个cron条目添加到启动调度程序。

代码语言:javascript
复制
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55164922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档