我正在使用momentjs插件moment-recur在客户端应用程序中创建和操作重复日期。我能够创建所有类型的重复日期(每天、每月、每年),但无法弄清楚如何为每月的第 N 天创建重复日期。即九月的第一个星期五。
我已经能够为该月的第 N 周生成一个重复日期,但对于从星期六开始的月份,当我需要它返回下周的星期五时,图书馆会跳到下一年。您可以看到 2012 年 9 月的第一个星期五是第 7 个,但是由于该月从前一周的星期六开始,因此使用以下代码确定没有星期五:
var start, end;
start = '09/05/1986';
end = '09/05/2014';
var date = moment(start);
//date.day() == 5, which results in Friday
var occurence = date.recur(end).every(date.day()).dayOfWeek();
//date.monthWeek() == 1, 1st week of the month THIS is where the problem lies
occurence = occurence.every(date.monthWeek()).weekOfMonth();
//September
occurence = occurence.every(date.format("MMMM")).monthOfYear();
console.log(occurence.next(50, 'L'));
印刷
...“09/03/2010”、“09/02/2011”、“09/06/2013”、“09/05/2014”...跳过 2012
有谁知道如何使用 moment-recur 或任何其他 JS 库生成一个月的第 N 天的重复日期?