我有一个cron"时间定义"
1 * * * * (every hour at xx:01)
2 5 * * * (every day at 05:02)
0 4 3 * * (every third day of the month at 04:00)
* 2 * * 5 (every minute between 02:00 and 02:59 on fridays)
Run Code Online (Sandbox Code Playgroud)
我有一个unix时间戳.
有没有一种明显的方法可以找到(计算)下一次(在给定的时间戳之后)该作业将被执行?
我正在使用PHP,但问题应该与语言无关.
[更新]
" PHP Cron Parser "类(由Ray建议)计算CRON作业应该执行的最后时间,而不是下次.
为了更容易:在我的情况下,cron时间参数只是绝对的,单个数字或"*".没有时间范围,也没有"*/5"间隔.
我正在自己的个人框架中设计一个任务调度程序,并试图避免不那么灵活的"每n分钟/小时/天运行一次"的方法,这种方法更容易实现.我想做的是模仿cron调度.我已经有功能来分割模式并计算当前下一个日期(一天中的某个日期)的下一个值,但如果有比我正在做的更容易的东西,或者可能更好的话,不想继续前进做我正在做的事情的方式.
/**
* Takes pattern(s) for various time attributes and calculates the next time the task should run
*
* @param mixed $minute Pattern or value of minute: 0-59 or 15,45 or * or * /5 (every 5 minutes)
* @param mixed $hour Pattern or value of hour: 0-23 or 0,6,12 or * or * /2 (every 2 hours)
* @param mixed $date Pattern or value of date: 1-31 or 1,15 or * or * /5 (every 5 …Run Code Online (Sandbox Code Playgroud)