Я использую плагин momentjs moment-recur для создания и управления повторяющимися датами в клиентском приложении. Я могу создавать все типы повторяющихся дат (ежедневно, ежемесячно, ежегодно), но не могу понять, как создать повторяющуюся дату для N-го дня месяца. то есть 1-я пятница сентября.
Мне удалось создать повторяющуюся дату для N-й недели месяца, которая близка, но для месяцев, начинающихся в субботу, библиотека переходит к следующему году, когда мне нужно вернуть пятницу следующей недели. Вы можете видеть, что 1-я пятница сентября 2012 года является 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'));
Отпечатки
..."03.09.2010", "02.09.2011", "06.09.2013", "05.09.2014"... пропускаем 2012
Кто-нибудь знает, как создавать повторяющиеся даты для N-го дня месяца с повторением момента или с любой другой библиотекой JS?