Jquery UI Datepicker不包括周末minDate

时间:2014-02-10 05:50:24

标签: jquery jquery-ui-datepicker mindate

如何让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/

谢谢

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逻辑以使其更快。希望它的帮助,请随时指出任何改进或漏洞。 :)

DEMO

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});
 });

更新:稍微优化一下。