2016-05-03 3 views
0

У меня есть следующий JQuery код: -JQuery Datepicker Дни исключения

var excludedDays = jQuery('#exclude-values').val(); 
// above returns = ["05/16/2016","05/17/2016"]; 

var disabledDays = ["5/16/2016","5/17/2016"]; 

function nationalDays(date) { 
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
    for (i = 0; i < disabledDays.length; i++) { 
     if($.inArray((m+1) + '/' + d + '/' + y,disabledDays) != -1 || new Date() > date) { 
      return [false]; 
     } 
    } 
    return [true]; 
} 
function noWeekendsOrHolidays(date) { 
    var noWeekend = jQuery.datepicker.noWeekends(date); 
    return noWeekend[0] ? nationalDays(date) : noWeekend; 
} 

jQuery('#datepicker').datepicker({ 
    dateFormat: 'dd-mm-yy', 
    changeYear: false, 
    minDate: 7, 
    inline: true, 
    constrainInput: true, 
    beforeShowDay: noWeekendsOrHolidays 
}); 

Это работает, однако она работает только тогда, когда значение, передаваемое в формате м/дд/гггг, когда мне это нужно, чтобы быть мм/дд/гггг.

Как я могу изменить код, чтобы он работал с форматом моего excludedDays?

ответ

1

Просто добавьте ноль, если месяц + 1 - одна цифра? Согласно моему отрывку?

var excludedDays = jQuery('#exclude-values').val(); 
 
// above returns = ["05/16/2016","05/17/2016"]; 
 

 
var disabledDays = ["05/16/2016","05/17/2016"]; 
 

 
function nationalDays(date) { 
 
    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
 
    
 
    for (i = 0; i < disabledDays.length; i++) { 
 
     
 
     if($.inArray(((m+1<10) ? "0"+parseInt(m+1) : m+1) + '/' + d + '/' + y,disabledDays) != -1 || new Date() > date) { 
 
      return [false]; 
 
     } 
 
    } 
 
    return [true]; 
 
} 
 
function noWeekendsOrHolidays(date) { 
 
    var noWeekend = jQuery.datepicker.noWeekends(date); 
 
    return noWeekend[0] ? nationalDays(date) : noWeekend; 
 
} 
 

 
jQuery('#datepicker').datepicker({ 
 
    dateFormat: 'dd-mm-yy', 
 
    changeYear: false, 
 
    minDate: 7, 
 
    inline: true, 
 
    constrainInput: true, 
 
    beforeShowDay: noWeekendsOrHolidays 
 
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
<body> 
 

 
<p>Date: <input type="text" id="datepicker"></p> 
 
    
 
    
 
</body>