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, 2013forber_rcvdMarch 14, 2013forを入力しましたteo_prep_due。コードに従うと、私の結果はMarch 5, 2013. ただし、s2Dateの結果はFebruary 11, 2013、3 日ではなく 1 か月と 3 日が差し引かれているかのようになります。他の誰かがこれに遭遇しましたか?

使用: jquery-1.9.1.min.jsjquery-migrate-1.1.1.jsおよびjquery-ui-1.10.1.min.js

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

4

1 に答える 1

1

問題は.setDate()、日付を設定せず、月の日を設定することです。引数として整数を取ります。作成したときはs2Date、デフォルトで 2 月の今日に設定されていました。-3を加えるtpDate.getDate()// equals 14と 11 になり、2 月 11 日になります。

于 2013-02-28T18:20:05.057 に答える