2013-05-31 21 views
0

我使用jQuery DatePicker確保出發日期至少在抵達日期後1天。我從this question得到了這樣的代碼。jQuery DatePicker - 日期必須相隔一天,但如果明天的開始日期有錯誤

但是,我剛剛注意到,如果我選擇明天(2013年5月31日)作爲抵達日期,則出發日期將設置爲2019年1月10日!但是如果我在明天之後選擇抵達日期,它似乎工作正常。對此有何不妥之處有任何想法?謝謝你的幫助。

這是一個JSFiddle與代碼顯示的問題。

而這裏的JS本身:

$(".datepicker_arrival").datepicker({ 
    dateFormat: 'dd/mm/yy', 
    minDate: new Date(), 
    onSelect: function(dateText, inst) { 
    if($('.datepicker_departure').val() == '') { 
     var current_date = $.datepicker.parseDate('dd/mm/yy', dateText); 
     current_date.setDate(current_date.getDate()+1); 
     $('.datepicker_departure').datepicker('setDate', current_date); 
    } 
    }, 
    onClose: function(selectedDate, test) { 
    var MyDateString = ('0' + (parseInt(test.selectedDay)+1)).slice(-2) + '/' 
      + ('0' + (test.selectedMonth+1)).slice(-2) + '/' 
      + test.selectedYear; 
     $(".datepicker_departure").datepicker("option", "minDate", MyDateString); 
    } 
}); 

$(".datepicker_departure").datepicker({ 
    dateFormat: 'dd/mm/yy', 
    minDate: new Date(), 
    onClose: function(selectedDate) { 
    $(".datepicker_arrival").datepicker("option", "maxDate", selectedDate); 
    } 
}); 
+1

這是在selectedDay一天,導致了它的+1。這是阻止你在兩部分中選擇同一天的部分。我正在回顧代碼。 – MasNotsram

+1

這應該有希望修復它: http://jsfiddle.net/9mSxk/3/ – MasNotsram

+0

我感謝您花時間研究此問題並找到解決辦法。我剛剛嘗試過這些代碼,它的效果很好,所以非常感謝。 :-) – Stephen

回答

1

好的總結註釋中的溶液(這是由我提供,我不只是榨取的答案)。

誤差是造成這一段代碼:

var MyDateString = ('0' + (parseInt(test.selectedDay)+1)).slice(-2) + '/' 
      + ('0' + (test.selectedMonth+1)).slice(-2) + '/' 
      + test.selectedYear; 

其中未正確添加一天的日期。當添加的那天,幾個月都沒有考慮到,所以這個月的任何最終造成了日期,像這樣被創建:

32/05/2013

當然沒有這個月的第32屆。

因此,建議修復代碼可以在這裏找到:

jsfiddle.net/9mSxk/3

+0

謝謝你。 :) – Stephen

相關問題