Datepicker无法在2/28正确减去?

时间:2013-02-28 17:55:29

标签: jquery-ui datepicker

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

        $('#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输入了ber_rcvd,为March 14, 2013输入了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/

1 个答案:

答案 0 :(得分:1)

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