cron表达式简介
Cron利用_cron表达式_表示重复计划。Cron表达式由几个字段组成,每个字段代表时间的度量。cron表达式中的字段如下:分钟,小时,每月的某天,月份,一周的某天以及可选的年份。这是一个每分钟运行一次的cron表达式示例,该表达式下方是位置字段。
1 | * * * * * * |
有几个特殊字符可以修改cron表达式的计划,并且某些修饰符在不同字段中的行为也有所不同。您可以在cron的Wikipedia页面上找到所有可用特殊字符的列表。
安装
Cron解析包
Github地址:
我们通过composer的方式来安装该包
1 | composer require dragonmantank/cron-expression |
如果你使用的是Laravel框架的话
则无需安装此包,这是因为Laravel
框架的已经引入该包
使用方法
1 | require_once '/vendor/autoload.php'; |
通过上面的代码我们可以轻易的就根据Cron表达式
计算出下次执行时间,是不是很方便呢,当然,这个包提供的方法不仅仅只是单纯计算出下次执行时间,同样我们也可以计算出下X次执行时间
1 |
|
运行结果:
1 | D:\php7.3\php.exe C:\Users\php\Desktop\local_test\index.php |
同样我们可以获取上次的执行时间 以及上X次执行时间:
1 | $cron = \Cron\CronExpression::factory($cron); |
我们还可以通过isDue
方法来查看cron表达式是否与特定日期匹配,同时该库也支持一些宏
@yearly
,@annually
-每年1月1日午夜运行一次-0 0 1 1 *
@monthly
-每个月的第一天午夜运行一次-0 0 1 * *
@weekly
-每周午夜在太阳上运行一次-0 0 * * 0
@daily
-每天半夜运行一次-0 0 * * *
@hourly
-第一分钟每小时运行一次-0 * * * *
我们可以通过这些宏来快速计算出执行时间,例如下面这个例子可以快速计算出每天半夜执行一次的时间:
1 | $cron = Cron\CronExpression::factory('@daily'); |