【发布时间】:2018-02-16 23:02:14
【问题描述】:
这是cron 表达式我试过0 0 0 */14 * ? 它给出了以下时间表
开始时间:-Friday, September 8, 2017 1:25 AM
下一个计划:-
1. Friday, September 15, 2017 12:00 AM
2. Friday, September 29, 2017 12:00 AM
3. Sunday, October 1, 2017 12:00 AM
4. Sunday, October 15, 2017 12:00 AM
5. Sunday, October 29, 2017 12:00 AM
这个表达式每个月每两周运行一次,但我的要求是它必须每两周运行一次,我的意思是在执行 sept 29th 之后,nxt 调度应该是 October 13 但它正在调度 @987654327 @
【问题讨论】:
-
我认为你应该保存运行脚本的最后日期,如果当前时间大于或等于 14 天,那么它应该运行,否则它应该运行
die或exit。跨度> -
如何做这些事情,你能提供一些技术信息吗?
-
您需要创建一个文件或将日期存储在数据库中,然后读取该日期并使用以下函数将其与当前日期进行比较`
public function date_differnece($d1, $d2) { $date1 = new DateTime($d1); $date2 = new DateTime($d2); return $date2->diff($date1)->format("%r%a"); } -
我们不能为每 2 周定义/创建一个直接的 Cron 表达式
-
必须有一些复杂的条件方式,但不可能按照您的方式进行。我在这方面做得不是很好,所以我建议了我会做的事情。
标签: cron