如何让jQuery UI datepicker排除周末,并将minDate
设置为某个值,如+2 / +3(不包括周末)?
我尝试了什么:
$("#txtFromDate").datepicker({
minDate: 4,
beforeShowDay: $.datepicker.noWeekends,
changeMonth: true,
changeYear: true
});
<input type="text" id="txtFromDate" />
对于示例当我选择星期一(如今天的第10天)并将'minDate'作为10时,应该启用从24日开始。
任何人都可以帮帮我吗?我希望能够在不包括星期六和星期日的情况下计算minDate
值。
FIDDLE- http://jsfiddle.net/betrob/7DHVr/2/
谢谢
答案 0 :(得分:4)
您可以手动执行计算,并将下一个工作日传递给minDate,如下所示。
// Calculate the next working day manually
var startDate = new Date(),
noOfDaysToAdd = 10,
count = 1;
while(count <= noOfDaysToAdd){
startDate.setDate(startDate.getDate() + 1);
if(startDate.getDay() != 0 && startDate.getDay() != 6){
count++;
}
}
// Datepicker Init
$('#txtFromDate').datepicker({
minDate: startDate,
beforeShowDay: $.datepicker.noWeekends,
changeMonth: true,
changeYear: true
});
这是一个有效的演示。的 DEMO 强>
答案 1 :(得分:3)
我尝试优化@Shiva逻辑以使其更快。希望它的帮助,请随时指出任何改进或漏洞。 :)
var count = 10;
//Add the 2 days of weekend in numer of days .
var d = new Date();
count = count + (parseInt(count/5))*2;
d.setDate(d.getDate() +count);
//suppose its ending on weekend day then increment them manually.
if(d.getDay()>5) { d.setDate(d.getDate()+ (d.getDay()-5)) ; }
$(document).ready(function () {
$("#txtFromDate").datepicker(
{ minDate: d,
beforeShowDay: $.datepicker.noWeekends,
changeMonth: true,
changeYear: true});
});
更新:稍微优化一下。