【发布时间】:2016-11-23 12:46:34
【问题描述】:
例如,我有 4 个按日期填充的下拉列表
["23rd December 2016","26th December 2016","27th December 2016","28th December 2016", "29th December 2016"]
在这种情况下,我希望避开周末。
各个下拉菜单的值如下
- 23rd December 2016
- 26th December 2016
- 27th December 2016
- 28th December 2016
目的是如果我将第一个日期的值从 23 日(“A Friday”)更改为 26 日(“A Monday”),其他 3 个日期将一天更改为以下值;
- 26th December 2016
- 27th December 2016
- 28th December 2016
- 29th December 2016
下面的代码可以正常工作
addWeekdays: function (date, days) {
date = moment(date); // use a clone
while (days > 0) {
date = date.add(1, 'days');
// decrease "days" only if it's a weekday.
if (date.isoWeekday() !== 6 && date.isoWeekday() !== 7) {
days -= 1;
}
}
return date;
}
每个下拉列表的值循环通过这个函数,date是下拉列表的日期值,days是初始日期和新日期之间的天数。
我遇到的问题是,如果我尝试从 26 日回到 23 日,我不确定如何重新创建它,所以我得到以下信息;
- 23rd December 2016
- 26th December 2016
- 27th December 2016
- 28th December 2016
基本上这是一种减去周末天数差异的方法,所以如果天数差异为2,我想从周一到上周四而不是周六。
任何帮助将不胜感激。
【问题讨论】:
-
@Rajesh 这是我的函数,其中包含如何添加不包括周末的天数,但我仍然不确定如何减去不包括周末的天数
-
@gus27 由于
days以-4返回,因此不会触发while 循环。
标签: javascript jquery date momentjs weekend