如何从 Laravel 命令调度程序中减去天数?

How to subtract days from Laravel command scheduler?

我需要 运行 一个创建数据库的命令 table 每个季度,我找到了这个命令

$schedule->command('test:create-table table_test')->quarterly();

但我想在一周前 运行 这个命令,只是为了确保 table 在我开始向其中插入数据之前已经创建。

实现该目标的最佳方法是什么?

我认为这会对你有所帮助:$schedule->command('test')->yearlyOn(12, 24, 0);

第一个值 12 是十二月的月份,24 是一年结束前的一天。最后一个值是 0 时钟的时间!

这是一年结束前的一周。但你需要每季度你也可以使用 CRON

在引擎盖下,Laravel implements “每季度”作为每个季度的第一天在 00:00 使用 cron 语句 0 0 1 1-12/3 *

虽然没有内置的“weekBefore”方法,但有一个 cron() 方法,您可以通过选择相当接近,例如,单个月份的第 24 天cron 语句。例如:

// Run on the 24th of Mar, Jun, Sept, and Dec
$schedule->command('foo')->cron('0 0 24 3,6,9,12 *');

如果你想 正好 前一周,你必须将它分成至少两个陈述(因为三月和十二月有 31 天,而六月和九月有 30).