代码之家  ›  专栏  ›  技术社区  ›  orolo

jqueryui日期选取器noweekendsandholidaysandweekday

  •  0
  • orolo  · 技术社区  · 14 年前

    我有这个答案,但我想把它扩展到: jQuery UI Datepicker - Disable specific days

    我坚持要将此方法添加到解决方案中:

    beforeShowDay: function(date){
            var day = date.getDay();
            return [(day != 5)];
        }
    

    到现在和假期。我怎么能加进去?

    所以,日期选择器 前夕 选项将有3个“假”返回:

    1. 没有周末
    2. 没有假期
    3. 没有选定的工作日(“我们星期五不营业, 太“”

    前两个选项的工作代码(我需要第三个选项的帮助):

    $(document).ready(function(){
    
    $("#datepicker").datepicker({
        noWeekends: true,
        numberOfMonths: 2,
        beforeShowDay: noWeekendsOrHolidays,
        minDate: '-1M -1W -1D',
        maxDate: '+1M',
        firstDay: 1
    });
    
    
    function nationalDays(date){
        var natDays = [[7, 26, 'Shop-Closed']];
        for (i = 0; i < natDays.length; i++) {
            if (date.getMonth() == natDays[i][0] - 1 &&
                date.getDate() == natDays[i][1] ) {
                    return [false, natDays[i][2] + '_day'];
                }
        }
        return [true, ''];
    }
    
    function noWeekendsOrHolidays(date){
        var noWeekend = $.datepicker.noWeekends(date);
        if (noWeekend[0]) {
            return nationalDays(date);  
        }
        else {
            return noWeekend;
        }
    }    
    });
    

    提前谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Simen Echholt    14 年前

    这样地?

    function noWeekendsOrHolidays(date){
        var noWeekend = $.datepicker.noWeekends(date);
        if (noWeekend[0]) {
            var isNotFriday = noFridays(date);
            if (isNotFriday[0]) {
                return nationalDays(date);
            }
            else {
                return isNotFriday;
            }
        }
        else {
            return noWeekend;
        }
    }
    
    function noFridays(date) {
        var day = date.getDay();
        return [(day != 5),""];
    }