fovxveym69/cron-expression

计算CRON表达式的下一个执行日期。支持年和秒(计算crontab表达式下一个执行日期,支持年和秒)

v0.0.2 2023-08-31 02:27 UTC

This package is auto-updated.

Last update: 2024-09-30 01:57:43 UTC


README

计算CRON表达式的下一个执行日期。支持年和秒(计算crontab表达式下一个执行日期,支持年和秒)

实现

此实现的参考文档可在https://en.wikipedia.org/wiki/Cron#CRON_expression找到,这里(懒惰!)进行了复制粘贴,并对此实现有差异的地方进行了修改

Field name     Mandatory?   Allowed values    Allowed special characters
----------     ----------   --------------    --------------------------
Seconds        No           0-59              * / , -
Minutes        Yes          0-59              * / , -
Hours          Yes          0-23              * / , -
Day of month   Yes          1-31              * / , -
Month          Yes          1-12              * / , -
Day of week    Yes          0-6               * / , -
Year           No           1970–2099         * / , -

星号 (*)

星号表示cron表达式匹配字段的所有值。例如,在第四字段(月份)中使用星号表示每个月。

斜杠 (/)

斜杠描述范围的增量。例如,在分钟字段中使用3-59/15表示小时中的第三分钟,以及之后的每15分钟。形式*/...与形式"first-last/..."等价,即在该字段可能的最大范围内进行增量。

逗号 ( , )

逗号用于分隔列表中的项。例如,在日期字段中的3,4,5表示每个月的3号、4号和5号。

破折号 ( - )

破折号定义范围。例如,2000-2010表示公元2000年至2010年之间的每一年,包括2000年和2010年。

安装

将依赖项添加到您的项目中

composer require han-xuefeng/cron-expression

用法

示例1

<?php

require_once '/vendor/autoload.php';

$cron = Cron\Cronexpr::parse('* * * * *');

echo $cron->next()->format('Y-m-d H:i:s');

示例2

<?php

require_once '/vendor/autoload.php';

$cron = Cron\Cronexpr::parse('* * * * *');

// $cron->next()->format('Y-m-d H:i:s');

$cron->next('now','PRC')->format('Y-m-d H:i:s');

示例3

<?php

require_once '/vendor/autoload.php';

// $cron = Cron\Cronexpr::parse('* * * * *');

$cron = Cron\Cronexpr::mustParse('* * * * *');

// $cron->next()->format('Y-m-d H:i:s');

// $cron->next('now','PRC')->format('Y-m-d H:i:s');

$cron->nextN('10');  //return array

需求

  • PHP 7.1+