相关疑难解决方法(0)

计算下次执行cron作业的时间

我有一个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"间隔.

language-agnostic algorithm cron

47
推荐指数
5
解决办法
3万
查看次数

从类似cronjob的语法创建"下次运行时"日期

在我正在创建用户的应用程序中,可以安排重复任务.只需生成间隔模式的值为:

Minute: [0-59, 90 (each minute)]
Hour: [0-23, 90 (each hour)]
Day of month: [1-31, 90 (each day of month), 91 (last day of month)]
Month: [1-12, 90 (each month)]
Run Code Online (Sandbox Code Playgroud)

所以,例如我有这种格式:10 - 2 - 90 - 90转换为2015-07-16 2:10.确定下一个运行时间日期的方法能够向我显示该日期.但是,我正在寻找有效的方法来检查下一个运行时间日期是否已经过去(简单部分),然后再次生成第一个下一个运行时间日期.在这种情况下,它会2015-07-17 2:10.

我发现我们的大脑很容易完成任务,但我不确定要以最有效的方式确定这一步的逻辑步骤(没有写出所有可能性).

有什么建议?

php

16
推荐指数
7
解决办法
5232
查看次数

标签 统计

algorithm ×1

cron ×1

language-agnostic ×1

php ×1