2016-07-27 6 views
0

こんにちは私は週末なしで5日間の自動選択でdatepickerを作りたいと思っています。 例えば、ユーザのピックは私が28.07、29.07、01.08、02.08、03.08 私が27.08.2016入力で表示したいかのうである場合は、それから5日を選択したい開始日のために27.07.2016場合 - 2016年3月8日Bootstrap 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', 
    }); 
    } 

カレンダーi "は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

うん男は私が望むほとんど何thatsのあなたに感謝しなければならない、私は – kuchar

+0

あなたは私がSELECTたくない '、説明してもらえ:(選択週間たくありませんあなたのコードで今の例で週間 – Edu

+0

私はカレンダーから29.07を選択した場合、それは私に与える: 2016年7月29日 - 2016年7月30日 - 2016年7月31日 - 2016年8月1日 - 2016年8月2日 が、私はそれがしたいの?週をスキップすると、このようになります。 29.07.2016 - 01.08.2016 - 02.08.2016 - 03.08.2016 - 04.08.2016 – kuchar

関連する問題