0

我不认为我产生了幻觉,因为我已经尝试了十几次。这是我的代码:

        $('#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, 2013了 forber_rcvdMarch 14, 2013for teo_prep_due。按照代码,我的结果应该是March 5, 2013. 但是,s2Date会导致February 11, 2013,好像减去了整整一个月和 3 天,而不是仅仅 3 天。有没有其他人遇到过这个?

使用jquery-1.9.1.min.jsjquery-migrate-1.1.1.jsjquery-ui-1.10.1.min.js

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

4

1 回答 1

1

问题是.setDate()没有设置日期,它设置了月份中的日期。它接受一个整数作为参数。当您创建s2Date它时,它默认为今天,即 2 月。当你加上tpDate.getDate()// equals 14-3 时,你得到 11,因此是 2 月 11 日。

于 2013-02-28T18:20:05.057 回答