我正在使用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(或格林威治标准时间17点05分+ 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")));
这是输出:
Date {Fri Dec 06 2013 12:05:00 GMT+0100 (Romance Standard Time)} Thu Dec 05 2013 9:05:00 GMT+0200 true Thu Dec 05 2013 13:05:00 GMT+0200 true Thu Dec 05 2013 17:05:00 GMT+0200 false Thu Dec 05 2013 21:05:00 GMT+0200 false Fri Dec 06 2013 01:05:00 GMT+0200 false Fri Dec 06 2013 05:05:00 GMT+0200 true Fri Dec 06 2013 09:05:00 GMT+0200 true Fri Dec 06 2013 13:05:00 GMT+0200 true Fri Dec 06 2013 17:05:00 GMT+0200 false Fri Dec 06 2013 21:05:00 GMT+0200 false
答案 0 :(得分:1)
排序小时数(3,7,11,15,19,23)似乎解决了这个问题。