You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel中实现每季度最后一天执行调度命令?

Laravel 每季度最后一天执行调度任务的解决方案

Laravel 自带的quarterly()方法确实默认在每季度第一天(1月1日、4月1日、7月1日、10月1日)执行任务,要实现每季度最后一天执行,有两种实用方案:

  • 方案一:直接使用 Cron 表达式
    利用 Cron 的L参数表示月份最后一天,指定季度最后一个月(1、4、7、10月)的最后一天执行,代码示例:

    $schedule->command('your:target-command')
        ->cron('0 0 L 1,4,7,10 *'); // 每天0点0分,在1、4、7、10月的最后一天执行
    

    注:Laravel 底层基于 Symfony 调度器,完全支持L参数的写法。

  • 方案二:Laravel 内置方法+条件判断
    先用lastDayOfMonth()让任务在每月最后一天执行,再通过when()方法限制仅在季度最后一个月触发,代码示例:

    $schedule->command('your:target-command')
        ->lastDayOfMonth()
        ->when(function () {
            // 判断当前月份是否为季度最后一个月
            return in_array(now()->month, [1, 4, 7, 10]);
        });
    

    这种写法更贴合 Laravel 语法风格,可读性更强,无需记忆复杂的 Cron 表达式。

额外提醒:确保config/app.php中timezone配置正确,避免时区偏差导致任务执行日期出错。

内容的提问来源于stack exchange,提问作者Leslie Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:53:08