gpt4 book ai didi

javascript - Later.js 无法获取 cron 表达式的下一个日期时间

转载 作者:行者123 更新时间:2023-12-01 05:39:39 36 4
gpt4 key购买 nike

我使用库later.js从cron表达式获取下一个日期时间的值。但结果的 5 次下一个对于时间默认值(“7/16/2015 10:44:47”)并没有错误。该结果是偏差“小时”。这是我的代码。

<script src="../later.min.js" type="text/javascript"></script>
<script>
var cron = "0 0/10 7,8,9,10,11,13,14,15,16,17,18 ? 1/1 1-5 *";

var d = new Date("7/16/2015 10:44:47");
later.date.timezone(true);
var sched = later.parse.cron(cron, true);

var results = later.schedule(sched).next(5,d);
for (var i = 0; i < results.length; i++) {
document.write('<p>' + results[i].toLocaleString() + '</p>');
}
</script>

结果不正确:

14:00:00 16/7/2015

14:10:00 16/7/2015

14:20:00 16/7/2015

14:30:00 16/7/2015

14:40:00 16/7/2015

结果正确使用http://www.cronmaker.com/测试:

  1. Thursday, July 16, 2015 10:50 AM
  2. Thursday, July 16, 2015 11:00 AM
  3. Thursday, July 16, 2015 11:10 AM
  4. Thursday, July 16, 2015 11:20 AM
  5. Thursday, July 16, 2015 11:30 AM

最佳答案

我找到了问题的答案。因此,我发布解决方案供引用。

在文件later.js中,它有函数“itemSorter”(第999行)。该函数根据裁剪表达式对数组进行排序(在拆分“”和“,”之后)。

function itemSorter(a, b) {
return isHash(a) && !isHash(b) ? 1 : 0;
}

将此函数更改为:

  function itemSorter(a, b) {
if (isNaN(a) || isNaN(b)) {
return a > b ? 1 : -1;
}
return a - b;
}

如果您没有later.js,您可以从以下网址下载:https://github.com/bunkat/later .

关于javascript - Later.js 无法获取 cron 表达式的下一个日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31445561/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com