我使用Later.js进行重复活动。我试图测试recur()
功能,它似乎没有正常工作,我也不知道为什么。这是我的榜样:
var schedule_hourly = later.schedule(later.parse.recur().every(x).hour()),
start_hourly = moment(start_day + " " + start_time, 'YYYY/MM/DD HH:mm');
var occurrences_hourly = schedule_hourly.next(y, start_hourly);
for (var i = 0; i < occurrences_hourly.length; i++) {
var execution_dates_hourly = [];
execution_dates_hourly = moment(occurrences_hourly[i]).format('YYYY/MM/DD HH:mm');
console.log(execution_dates_hourly);
}
其中:
x
和y
是我可以更改的值; start_day
的格式为YYYY / MM / DD; start_time
的格式为HH:mm。初始日期为2016/07/20 10:00,x = 2且y = 5我在控制台上获得以下内容:
2016/07/20 10:00
2016/07/20 12:00
2016/07/20 14:00
2016/07/20 16:00
2016/07/20 18:00
所以它正常工作。我每隔2小时就会重复一次,从10:00开始重复5次。
但是,如果我将x更改为8,我会得到:
2016/07/20 16:00
2016/07/21 00:00
2016/07/21 08:00
2016/07/21 16:00
2016/07/22 00:00
为什么现在16:00开始?不应该像以前一样从10:00开始,然后到下一个18:00开始吗?
答案 0 :(得分:0)
当然,对于子孙后代,它已经过时了,但仍然如此。
就我所知,诀窍是它每隔 8th 小时发生一次,在您的示例中,该数字每小时可以划分为8。如果您再次尝试使用x=2
,但从11:00开始,您会发现它仍然是12:00 14:00 16:00
,依此类推,而不是11:00 13:00
和15:00
。
真的很奇怪。