定时推送
定时推送消息、通知、邮件给用户
专业的 Cron 表达式解析、验证扩展包,完美适配网站后台定时任务场景
mtdowling/cron-expression 是专业的 Cron 表达式解析、验证扩展包,支持解析定时任务规则、计算下次执行时间,完美适配网站后台定时任务,如定时推送、定时更新内容、定时清理数据等场景。
composer require mtdowling/cron-expression
解析标准 Cron 表达式,支持5位和6位格式
验证 Cron 表达式的语法正确性
根据 Cron 表达式计算下次执行时间
定时推送消息、通知、邮件给用户
定时更新网站内容、缓存刷新
定时清理过期数据、日志文件
定时生成报表、统计数据汇总
* * * * * *
| 位置 | 字段 | 允许值 | 特殊字符 |
|---|---|---|---|
| 1 | 秒 (可选) | 0-59 | * / , - |
| 2 | 分钟 | 0-59 | * / , - |
| 3 | 小时 | 0-23 | * / , - |
| 4 | 日期 | 1-31 | * / , - ? L W |
| 5 | 月份 | 1-12 | * / , - |
| 6 | 星期 | 0-7 | * / , - ? L # |
验证 Cron 表达式是否有效
use Cron\CronExpression;
$cron = CronExpression::factory('* * * * *');
var_dump($cron->isValid());
计算下次执行时间
$cron = CronExpression::factory('0 0 * * *');
echo $cron->getNextRunDate()->format('Y-m-d H:i:s');
获取接下来的多个执行时间
$cron = CronExpression::factory('0 8,12,18 * * *');
$dates = $cron->getMultipleRunDates(5);
foreach($dates as $date) {
echo $date->format('Y-m-d H:i:s');
}