2013-02-28 25 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日。