Laravel 8中schedule的daily()->at()是否按指定时间执行?
Laravel 8 任务调度时区问题解答
你的代码:
$schedule->command('end:tracking:day')->daily()->at('00:05');
按照Laravel的调度逻辑,这个任务会在阿姆斯特丹时间(Europe/Amsterdam)的00:05执行,对应夏令时的UTC时间22:05。
核心逻辑说明
Laravel任务调度的时间解析完全基于你配置的应用时区(config/app.php里的timezone项),文档里的示例weekly()->mondays()->at('13:00')也是指应用时区下的周一13:00执行,和你的代码逻辑完全一致。
日志显示22:00的可能原因
- 大概率是你看错了日志——把其他任务的执行日志当成了
end:tracking:day任务的 - 检查
config/app.php里的时区配置是否确实是Europe/Amsterdam,有没有被其他代码动态修改过 - 排查
end:tracking:day命令本身的逻辑,是否存在提前执行的时间判断逻辑
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

