【问题标题】:Bootstrap DatePicker - Skip array of dates in rangeBootstrap DatePicker - 跳过范围内的日期数组
【发布时间】:2017-01-26 10:10:28
【问题描述】:

我有一个禁用日期的日历IMAGE 我使用此属性禁用星期日和星期六以及之前的日期:

//datesDisabled: datesForDisable, --> this is array
//daysOfWeekDisabled: [0, 6],

我想在 dateFrom 中选择第 18 个日期,在 dateTo 中选择第 23 个日期得到天数 --> 2 我想跳过禁用日期

这里我使用函数

var enumerateDaysBetweenDates = function (startDate, endDate) {

        var disabledDates = ["13/01/2017", "19/01/2017", "20/01/2017"];
        var DisableDays = [0, 1];
        var dates = [];

        var currDate = startDate.clone().startOf('day');
        var lastDate = endDate.clone().startOf('day');

        dates.push(currDate.clone().toDate());

        while (currDate.add('days', 1).diff(lastDate) < 0) {
            if (disabledDates.indexOf(moment(currDate.format('DD/MM/YYYY'))) == -1 && DisableDays.indexOf(currDate.day()) == -1) {
                dates.push(currDate.clone().toDate());
            }
        }

        dates.push(currDate.clone().toDate());

        return dates;
    };

谢谢你!

【问题讨论】:

    标签: jquery arrays twitter-bootstrap sharepoint datepicker


    【解决方案1】:
    var DisableDays = [0, 1];
    

    定义一周中的哪几天被禁用。

    要禁用星期六和星期日,请在禁用天数数组中使用 0,6。

    Moment.js 定义从 Sunday=0 到 Saturday=6 的工作日。

    更新

    类似地,对于非工作日,将非工作数组与循环中的当前日期进行比较。

    Updated Fiddle

     if(DisableDays.indexOf(currDate.day()) == -1 && notWorkingDays.indexOf(currDate.format('DD.MM.YYYY')) == -1 )
    

    -帮助:)

    【讨论】:

    • 我想实现要跳过的日期数组
    • 最后一个 if 语句替换为新的 if 语句?
    • 是的,您还必须在最后一条语句中替换。请投票给其他人认为正确的答案。谢谢你:)
    猜你喜欢
    • 2020-09-23
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    相关资源
    最近更新 更多