2016-07-27 79 views
0

你好,我想使datepicker自動選擇五天沒有周末。 如果用戶選擇例如27.07.2016作爲開始日期,我想從中選擇5天28.07,29.07,01.08,02.08,03.08 如果可能,我想在輸入中顯示27.08.2016 - 03.08.2016Bootstrap datepicker - 選擇5天沒有周末

到目前爲止,我做了這樣的事情: Demo example http://jsfiddle.net/kuchar/hrzakorh/#&togetherjs=t3vznRU6eM

var date = new Date(); 
    var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()); 
    var todaytime = new Date().toLocaleTimeString('pl-PL', { 
    hour12: false, 
    hour: "numeric", 
    minute: "numeric" 
    }); 
    if (todaytime <= '12:00:00'){ 
    $('#date-picker input').datepicker({ 
     language: "pl", 
     multidateSeparator: " - ", 
     maxViewMode: 0, 
     multidate: true, 
     daysOfWeekDisabled: "0,6", 
     defaultDate: 1, 
     startDate: '+1d', 
    }); 
    } 
    if (todaytime >= '12:00:00'){ 
    $('#date-picker input').datepicker({ 
     language: "pl", 
     multidateSeparator: " - ", 
     maxViewMode: 0, 
     multidate: true, 
     daysOfWeekDisabled: "0,6", 
     defaultDate: 1, 
     startDate: '+2d', 
    }); 
    } 

日曆上輸入我所謂的 「Wybierz日期」。

回答

1

的aproximation應該是...

function getDayAfterExcludingWeekEnds(dateParam,dayNum){ 
    var newDate = new Date(dateParam.getFullYear(), dateParam.getMonth(), dateParam.getDate() + dayNum); 
    if (newDate.getDay() == 6){ 
    return getDayAfterExcludingWeekEnds(newDate, 2); 
    } 
    if (newDate.getDay == 0){ 
    return getDayAfterExcludingWeekEnds(newDate, 1); 
    } 
    return newDate; 
} 
$("#select").change(function() { 
    var count = parseInt($(this).val().replace("ppl", "")); 
    $("#npersons").html(""); 
    $(".dataTable").hide(); 
    for (var i = 0; i < count; i++) { 
     var $row = $("#food").clone().prop("name", "foods" + i).show(); 
     $row.find("td").eq(0).html(i + 1); 
     $("#persons #food").removeAttr('required'); 
     $("#npersons").append($row); 
    } 
    if (count > 0) { 
     $(".dataTable").show(); 
    } 
    }); 

    var date = new Date(); 
    var today = new Date(date.getFullYear(), date.getMonth(), date.getDate()); 
    var todaytime = new Date().toLocaleTimeString('pl-PL', { 
    hour12: false, 
    hour: "numeric", 
    minute: "numeric" 
    }), 
    startDate = '+1d'; 
    if (todaytime > '12:00:00'){ 
    startDate = '+2d'; 
    } 
    $('#date-picker input').datepicker({ 
    language: "pl", 
    multidateSeparator: " - ", 
    maxViewMode: 0, 
    multidate: true, 
    daysOfWeekDisabled: "0,6", 
    defaultDate: 1, 
    startDate: startDate 
    }).on('changeDate', function(event) { 
      if(event.dates.length > 1 && event.dates.length < 6){ 
      return; 
      } 
      var selectedDate = event.date, 
      selectedDateAfterOne = getDayAfterExcludingWeekEnds(selectedDate, 1), 
      selectedDateAfterTwo = getDayAfterExcludingWeekEnds(selectedDateAfterOne, 1), 
      selectedDateAfterTree = getDayAfterExcludingWeekEnds(selectedDateAfterTwo, 1), 
      selectedDateAfterFour = getDayAfterExcludingWeekEnds(selectedDateAfterTree, 1), 
      dates = [selectedDate,selectedDateAfterOne,selectedDateAfterTwo,selectedDateAfterTree,selectedDateAfterFour]; 
      $('#date-picker input').datepicker('setDates',dates); 
     }); 

好運

+0

呀謝謝你的男人,這是我想幾乎什麼,我不想選擇周:( – kuchar

+0

你能解釋一下,「我不想SELECT幾周「 – Edu

+0

現在用你的代碼,如果我從日曆中選擇了29.07,它給了我: 29.07.2016 - 30.07.2016 - 31.07.2016 - 01.08.2016 - 02.08.2016 但是我想要它跳過周,所以它應該看起來像這樣 29.07.2016 - 01.08.2016 - 02.08.2016 - 03.08.2016 - 04.08.2016 – kuchar

相關問題