添加月份到日期

javascript add month to date

本文关键字:日期 添加      更新时间:2023-09-26

我想添加1个月或6个月到给定的日期。但是如果我加一个月,年份就不会增加。如果我把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);
    }

getMonth返回一个从0到11的数字,表示1月为0,2月为1,等等

so这样修改

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

month = terminDate.getMonth() + 1;

您应该使用javascript Date对象的本机方法来更新它。看看这个问题的公认答案,例如,它是解决你问题的正确方法。

为日期添加X个月的Javascript函数

这个函数可以更简洁地写成:

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的值应在使用前进行验证,由该值生成的日期也应进行验证。