0

我正在使用 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吗?

4

1 回答 1

0

当然,它已经过时了,但对于后代来说仍然如此。诀窍是,据我所知,它每8小时发生一次,在您的示例中,每小时可以分为 8。如果您再试x=2一次,但从 11:00 开始,您会发现出它仍然12:00 14:00 16:00是等,而不是11:00 13:0015:00。真是奇怪的行为。

于 2019-01-28T13:40:08.970 回答