2013-02-28 24 views
0

我不覺得我是幻覺,因爲我試了十幾遍。這裏是我的代碼:Datepicker無法在2/28上正確減法?

 $('#teo_prep_due').change(function() { 
     var ber = $('#ber_rcvd'); 
     var tpd = $('#teo_prep_due'); 
     var brDate = ber.datepicker('getDate'); 
     var tpDate = tpd.datepicker('getDate'); 
     var s1Date = new Date(); 
     var s2Date = new Date(); 
     var sdDate = new Date(); 
     s1Date.setDate(brDate.getDate() + 5); 
     console.log(s1Date); 
     s2Date.setDate(tpDate.getDate() - 3); 
     console.log(s2Date); 
     if (s1Date < s2Date) { 
      sdDate.setDate(s1Date.getDate()); 
     } else { 
      sdDate.setDate(s2Date.getDate()); 
     } 
     $('#survey_due').datepicker('setDate', sdDate); 
    }); 

在我的約會形式,我已經進入了February 28, 2013ber_rcvdMarch 14, 2013teo_prep_due。根據代碼,我的結果應該是March 5, 2013。然而,s2Date導致February 11, 2013,好像一個整月和3天被減去而不是僅僅3天。有沒有其他人遇到過這個問題?使用jquery-1.9.1.min.js,jquery-migrate-1.1.1.jsjquery-ui-1.10.1.min.js

http://jsfiddle.net/devlshone/veP7b/

回答

1

的問題是,.setDate()沒有設定日期,它設置了一個月的一天。它將一個整數作爲參數。當你創建s2Date它默認今天是2月份。當你用-3增加tpDate.getDate()// equals 14時,你得到11,因此2月11日。