У меня проблемы. Я хочу знать конечную дату с определенной даты, используя momentjs, увеличивая определенное количество дней и исключая дни недели из массива.добавить дни блокировки дней недели из массива Momentjs
Пример:
У меня дату '2015-07-05'. Я хочу добавить 8 дней для этой даты. Поэтому моя последняя дата - «2015-07-09».
Но я хочу исключить несколько дней недели, которые у меня есть в этом массиве: [1,5,6,7] (соответствует «понедельникам», «пятницам», «субботам» и «воскресным» в формате ISO).
После исключения этих дней недели моя окончательная дата должна быть «2015-07-21» в конце. Но я не могу понять, как его решить.
Это функция, предназначенная для исключения субботы и воскресенья. Но я не могу приспособить его к моему сценарию.
getFinalDate: function(date, days, excluded){
var increment = days/Math.abs(days);
var addition = Math.ceil(Math.abs(days)/5) * 7 * increment;
var date = moment(date).add(addition, 'days');
var remaining = days % 5;
var date = moment(date).add(addition, 'days');
while(remaining != 0) {
date.add(increment, 'days');
if($.inArray(date.isoWeekday(), excluded) == -1)
remaining -= increment;
}
return date.format('YYYY-MM-DD');
}
вышеуказанная функция была взята из другой публикации. Он работает отлично, но мне нужно исключить массив недельных дней.
Большое спасибо @GregL. Я собираюсь проверить это, но вся ваша логика кажется правильной. – Brian
Работает отлично, спасибо много снова !! – Brian