2016-07-27 9 views
0

Hallo Ich möchte datepicker mit Auto-Auswahl fünf Tage ohne Wochenenden machen. Wenn Benutzer zB 27.07.2016 für das Startdatum wählen möchte ich 5 Tage davon auswählen 28.07, 29.07, 01.08, 02.08, 03.08 Wenn es möglich ist möchte ich in der Eingabe 27.08.2016 - 03.08.2016bootstrap datepicker - Wählen Sie 5 Tage ohne Wochenenden

anzeigen

Bisher habe ich so etwas wie dieses: 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', 
    }); 
    } 

Kalender ist auf Eingang i "Wybierz Datum" genannt. sein

Antwort

1

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

Viel Glück

+0

Ja danke Mann das ist fast, was ich will, ich wählen Wochen nicht wollen :( – kuchar

+0

Könnten Sie erklären: "Ich möchte nicht SELECT Wochen mit einem Beispiel? – Edu

+0

Für jetzt mit Ihrem Code, wenn ich wählte 29.07 aus dem Kalender gibt es mir: 29.07.2016 - 30.07.2016 - 31.07.2016 - 01.08.2016 - 02.08.2016 Aber ich will es zu Überspringen Sie Wochen so sollte es so aussehen 29.07.2016 - 01.08.2016 - 02.08.2016 - 03.08.2016 - 04.08.2016 – kuchar