xavier / xcron-expression
基于Michael Dowling的cron-expression开发
0.11
2018-08-18 09:01 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ~5.7
This package is auto-updated.
Last update: 2024-09-20 19:40:23 UTC
README
注意 这个分支已被弃用,开发已转移到 https://github.com/dragonmantank/cron-expression。更多信息请查看博客文章 此处。简而言之 - v2.0.0 是一个重大变更,@dragonmantank 可以更好地在单独的分支上管理项目。
PHP cron表达式解析器可以解析CRON表达式,确定是否应该运行,计算表达式的下一次运行日期,以及计算表达式的上一个运行日期。您可以通过跳过n个匹配日期来计算远期或过去的日期。
解析器可以处理范围的增量(例如*/12,2-59/3),间隔(例如0-9),列表(例如1,2,3),W以找到给定月份的最近工作日,L以找到月份的最后一天,L以找到给定月份的最后给定工作日,以及hash(#)以找到给定月份的第n个工作日。
安装
将依赖项添加到您的项目中
composer require mtdowling/cron-expression
用法
<?php require_once '/vendor/autoload.php'; // Works with predefined scheduling definitions $cron = Cron\CronExpression::factory('@daily'); $cron->isDue(); echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); echo $cron->getPreviousRunDate()->format('Y-m-d H:i:s'); // Works with complex expressions $cron = Cron\CronExpression::factory('3-59/15 2,6-12 */15 1 2-5'); echo $cron->getNextRunDate()->format('Y-m-d H:i:s'); // Calculate a run date two iterations into the future $cron = Cron\CronExpression::factory('@daily'); echo $cron->getNextRunDate(null, 2)->format('Y-m-d H:i:s'); // Calculate a run date relative to a specific time $cron = Cron\CronExpression::factory('@monthly'); echo $cron->getNextRunDate('2010-01-12 00:00:00')->format('Y-m-d H:i:s');
CRON 表达式
CRON表达式是一个字符串,表示特定命令执行的调度计划。CRON调度的组成部分如下
基于Cron Expression开发,新增了对秒的判断,根据crontab时间格式计算下一次运行时间
| | | | | | | | | | | | | | | | | +----- 星期几(0 - 7)(星期日=0 或 7) | | | | +---------- 月份(1 - 12) | | | +--------------- 月份中的天数(1 - 31) | | +-------------------- 小时(0 - 23) | +------------------------- 分钟(0 - 59) +------------------------------ 秒(0-59) 要求
- PHP 7.0+
- 运行单元测试需要PHPUnit
- 运行单元测试需要Composer