我使用beforeShowDay来排除节假日和周末,但是我希望在计算minDate时排除beforeShowDays。
例如,如果一周中的当前一天是星期五,而minDate是2,我希望将周末排除在等式之外。因此,您可以选择的第一个日期不是星期一,而是星期三。
这是我的jQuery:
$( "#date" ).datepicker({
minDate: 2, maxDate: "+12M", // Date range
beforeShowDay: nonWorkingDates
});有人知道怎么做吗?
发布于 2011-05-27 01:59:44
这样如何:
function includeDate(date) {
return date.getDay() !== 6 && date.getDay() !== 0;
}
function getTomorrow(date) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);
}
$("#date").datepicker({
beforeShowDay: function(date) {
return [includeDate(date)];
},
minDate: (function(min) {
var today = new Date();
var nextAvailable = getTomorrow(today);
var count = 0;
var newMin = 0; // Modified 'min' value
while(count < min) {
if (includeDate(nextAvailable)) {
count++;
}
newMin++; // Increase the new minimum
nextAvailable = getTomorrow(nextAvailable);
}
return newMin;
})(2) // Supply with the default minimum value.
});基本上,利用已经为beforeShowDay定义的方法,找出下一个有效日期在哪里。如果我的逻辑是正确的(并且您只排除了周末),那么如果有周末(星期四),这个值只能是2或4: 2。或星期五),如果不是,则为2。
如果你排除了其他日子,事情就会变得更加复杂,但我认为逻辑仍然存在。
下面是关于fiddle的代码:http://jsfiddle.net/TpSLC/
https://stackoverflow.com/questions/6136544
复制相似问题