crontab 时间格式:
配置 | 说明 |
---|---|
“* * * * * *” | 分 时 日 月 周 |
“0 3 * * * *” | 数字精确配置, 星号为任意.(每天凌晨3点整) |
“15,30 3 * * *” | 逗号表示枚举 (每天3点15分和3点30分) |
“15-30 3 * * *” | 短线表示范围 (每天的3点15分到30分) |
“*/10 3 * * *” | 斜杠表示间隔 (每天3点0分到30分之间, 每10分钟一次) |
“0-10,50-59/2 3 * * *” | 优先级:枚举>范围>间隔 (每天3点0分到10分以及50到59分期间, 每2分钟一次) |
注意:不支持解析以英文名称配置的时间计划(如:”0 4 1 jan “)
应用场景: crontab配置一个php, 然后由php管理多个php的crontab任务
<?php
/**
* crontab 时间格式php解析类(PHP 5 >= 5.1.0)
*
* @author 肖武 <tsxw24@gmail.com>
* @link https://code.google.com/p/xwcrontab/
*/
class XwCrontab {
/**
* 检查某时间($time)是否符合某个corntab时间计划($str_cron)
*
* @param int $time 时间戳
* @param string $str_cron corntab的时间计划,如,"30 2 * * 1-5"
*
* @return bool/string 出错返回string(错误信息)
*/
static public function check($time, $str_cron) {
$format_time = self::format_timestamp($time);
$format_cron = self::format_crontab($str_cron);
if (!is_array($format_cron)) {
return $format_cron;
}
return self::format_check($format_time, $format_cron);
}
/**
* 使用格式化的数据检查某时间($format_time)是否符合某个corntab时间计划($format_cron)
*
* @param array $format_time self::format_timestamp()格式化时间戳得到
* @param array $format_cron self::format_crontab()格式化的时间计划
*
* @return bool
*