2016-07-08 8 views
0

Ich erstelle ein Buchungs-Widget und möchte das "Abreisedatum" für 1 Tag nach dem Ankunftsdatum festlegen. Hier ist, was ich bisher habe, aber aus irgendeinem Grund zeigt es das gleiche Datum anstelle des nächsten Tages an.jQuery Datepicker - Abflugdatum für 1 Tag nach dem Ankunftsdatum einstellen

jQuery(document).ready(function() { 
    var nowTemp = new Date(); 
    var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0); 
    var checkin = jQuery('#arrivalDate').fdatepicker({ 
     onRender: function (date) { 
      return date.valueOf() < now.valueOf() ? 'disabled' : ''; 
     } 
    }).on('changeDate', function (ev) { 
     if (ev.date.valueOf() > checkout.date.valueOf()) { 
      var newDate = new Date(ev.date); 
      newDate.setDate(newDate.getDate() + 1); 
      checkout.update(newDate); 
     } 
     checkin.hide(); 
     jQuery('#departureDate')[0].focus(); 
    }).data('datepicker'); 
    var checkout = jQuery('#departureDate').fdatepicker({ 
     onRender: function (date) { 
      return date.valueOf() <= checkin.date.valueOf() ? 'disabled' : ''; 
     } 
    }).on('changeDate', function (ev) { 
     checkout.hide(); 
    }).data('datepicker'); 
}); 

Antwort

0

Diese Frage wurde bereits beantwortet hier Incrementing a date in JavaScript aber wenn Sie nicht wollen, es zu lesen. Dann sollten Sie diese

var newDate = new Date(ev.date); 

zu diesem

ändern
var newDate = new Date(ev.getDate() + 1); 

Dann newDate den aktuellen Tag wird plus einem zusätzlichen Tag, derjenige ist, die Sie hinzugefügt.

+0

Ich habe 'newDate.setDate (newDate.getDate() + 1);' direkt unter der von Ihnen erwähnten Zeile. – JeremyE

+0

Ich weiß, aber newDate sollte null sein, weil es falsch initialisiert wurde, wenn Sie versuchen, 'newDate.setDate (newDate.getDate() + 1);' Sie sagen, dass newdDate auf null plus 1. gesetzt werden sollte und der Fehler ist in 'var newDate = neues Datum (ev.date);' –