0

特定の日付に1か月または6か月を追加したい。しかし、1か月を追加しても、年は増加しません。そして、6月に6か月を追加すると、月00が返されますが、年は増分されます。手伝ってくれませんか。

function addToBis(monthToAdd){
        var tmp = $("#terminbis").val().split('.');

        var day = tmp[0];
        var month = tmp[1];
        var year = tmp[2];

        var terminDate = new Date(parseInt(year),parseInt(month), parseInt(day));
        terminDate.setMonth(terminDate.getMonth()+monthToAdd);

        day = "";
        month = "";
        year = "";

        if(terminDate.getDate() < 10){
            day = "0"+terminDate.getDate();
        } else{
            day = terminDate.getDate();
        }

        if(terminDate.getMonth() < 10){
            month = "0"+terminDate.getMonth();
        } else{
            month = terminDate.getMonth();
        }

        year = terminDate.getFullYear();


        $("#terminbis").val(day+"."+month+"."+year);
    }
4

3 に答える 3

2

getMonth は 0 から 11 までの数値を返します。これは、1 月の場合は 0、2 月の場合は 1 などを意味します。

このように変更します

var terminDate = new Date(parseInt(year),parseInt(month - 1), parseInt(day));
    terminDate.setMonth(terminDate.getMonth()+monthToAdd);

month = terminDate.getMonth() + 1;
于 2013-03-07T12:34:21.223 に答える
0

javascriptDateオブジェクトのネイティブメソッドを使用して更新する必要があります。たとえば、この質問の受け入れられた答えを確認してください。これは、問題に対する正しいアプローチです。

日付にXか月を追加するJavascript関数

于 2013-03-07T12:23:45.473 に答える
0

この関数は、次のようにもっと簡潔に記述できます。

function addToBis(monthToAdd){

    function z(n) {return (n<10? '0':'') + n}

    var tmp = $("#terminbis").val().split('.');
    var d = new Date(tmp[2], --tmp[1], tmp[0]);

    d.setMonth(d.getMonth() + monthToAdd);

    $("#terminbis").val(z(d.getDate()) + '.' + z(d.getMonth() + 1)
                       + '.' + d.getFullYear();
}

との値はterminbismonthToAdd値から生成された日付と同様に、使用前に検証する必要があります。

于 2013-03-07T13:12:17.013 に答える