2

我正在使用 later.js 来计算下一次出现的 cron,它返回错误的结果。

这是我的代码:

var laterCron = later.parse.cron("5 11,15,19,23,3,7 * * *");
console.log(later.schedule(laterCron).next());

回应是

Fri Dec 06 2013 13:05:00 GMT+0200 (EET)

(现在是 2013 年 12 月 5 日星期四 14:36:38 GMT+0200 (EET))但下一次运行应该在 15:05 GMT(或 17:05 GMT+02)

有什么帮助吗?(我用的是最新版本,1.1.6)

小提琴

var laterCron = later.parse.cron("5 11,15,19,23,3,7 * * *");
console.log(later.schedule(laterCron).next());
console.log("Thu Dec 05 2013 9:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Thu Dec 05 2013 9:05:00 GMT+0200")));
console.log("Thu Dec 05 2013 13:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Thu Dec 05 2013 13:05:00 GMT+0200")));
console.log("Thu Dec 05 2013 17:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Thu Dec 05 2013 17:05:00 GMT+0200")));
console.log("Thu Dec 05 2013 21:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Thu Dec 05 2013 21:05:00 GMT+0200")));
console.log("Fri Dec 06 2013 01:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Fri Dec 06 2013 01:05:00 GMT+0200")));
console.log("Fri Dec 06 2013 05:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Fri Dec 06 2013 05:05:00 GMT+0200")));
console.log("Fri Dec 06 2013 09:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Fri Dec 06 2013 09:05:00 GMT+0200")));
console.log("Fri Dec 06 2013 13:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Fri Dec 06 2013 13:05:00 GMT+0200")));
console.log("Fri Dec 06 2013 17:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Fri Dec 06 2013 17:05:00 GMT+0200")));
console.log("Fri Dec 06 2013 21:05:00 GMT+0200", later.schedule(laterCron).isValid(new Date("Fri Dec 06 2013 21:05:00 GMT+0200")));

这是输出:

日期 {2013 年 12 月 6 日星期五 12:05:00 GMT+0100(浪漫标准时间)}
2013 年 12 月 5 日星期四 9:05:00 GMT+0200 真
2013 年 12 月 5 日星期四 13:05:00 GMT+0200 真
2013 年 12 月 5 日星期四 17:05:00 GMT+0200 假
2013 年 12 月 5 日星期四 21:05:00 GMT+0200 假
2013 年 12 月 6 日星期五 01:05:00 GMT+0200 假
2013 年 12 月 6 日星期五 05:05:00 GMT+0200 真
2013 年 12 月 6 日星期五 09:05:00 GMT+0200 真
2013 年 12 月 6 日星期五 13:05:00 GMT+0200 真
2013 年 12 月 6 日星期五 17:05:00 GMT+0200 假
2013 年 12 月 6 日星期五 21:05:00 GMT+0200 假
4

1 回答 1

1

对时间进行排序(3、7、11、15、19、23)似乎可以解决问题。

于 2013-12-05T13:03:56.907 回答