【问题标题】:Getting datetimes from cron format using javascript使用 javascript 从 cron 格式获取日期时间
【发布时间】:2011-12-14 05:49:29
【问题描述】:

有谁知道任何现有的使用 javascript 的解决方案可以解析 crontab 并返回给定开始日期和结束日期之间的所有日期时间实例?

如果我有0 * * * *,开始24/10/2011 16:00 并结束24/10/2011 19:00 然后它将返回:

24/10/2011 16:00,
24/10/2011 17:00,
24/10/2011 18:00

【问题讨论】:

  • Crontag? Tpyo[原文如此]?您想解析“* */4 * * * *”类型的 crontab 条目并将其转换为实际日期/时间?
  • 添加到@MarcB,...或日期/时间范围?
  • 我得到它的方式,输入是:startdate、enddate 和一个 crontab 行。输出应该是 crontab 命令将在两个给定日期之间运行的确切日期时间。
  • 没错,即如果我有0 * * * *,开始24/10/2011 16:00 并结束24/10/2011 19:00 然后它将返回24/10/2011 16:00, 24/10/2011 17:00, 24/10/2011 18:00
  • 根据 OP 的评论更新了问题。

标签: javascript cron


【解决方案1】:

您可能想查看Later.js,它可以解析 Cron 表达式并计算下一次出现的次数。

var schedule = cronParser().parse('* */5 * * * *', true);
var results = later(60).get(schedule, 100, startDate, endDate);

【讨论】:

  • 最终自己编写了这个代码,所以对我来说有点晚了,但看起来不错!谢谢
  • 太好了,为什么不把它作为一个包分享呢?
  • var schedule = later.parse.cron('* */5 * * * *', true); var results = later.schedule(schedule).next(100, new Date('2016-01-25'), new Date('2016-02-25') )
  • 这与 Java 石英 cron 调度器兼容吗?我的用例是使用兼容的调度程序,以便后端或前端可以使用 cron 表达式来获取事件。
【解决方案2】:

这没什么帮助,但它是一个开始。有一些 java(不是 javascript)和 php 解决方案有一些不错的代码,如果您最终自己编写这些代码,您可能希望将其翻译和合并。

看看这两段代码:

http://www.redmoon.ch/?p=39

http://www.phpclasses.org/package/2568-PHP-Parse-cron-tab-files-to-retrieve-job-schedules.html

HTH

【讨论】:

    【解决方案3】:

    可以使用 cron-parser 库。 更多信息here

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 2013-11-07
      • 2022-01-02
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      相关资源
      最近更新 更多