在Javascript中为日期添加天数

在Javascript中为日期添加天数,javascript,jquery,date,Javascript,Jquery,Date,我可以在一个日期上加上天,这对于当前月份中的任何一个日期都很好。但是,如果我选择一个到达日期,比如2014-06-26,然后选择7晚,将其滚动到下一个月,则会对天数进行正确的加法,但会将其相加,就像该月是2014-05-26的当前月份一样。我没有正确地为日期添加天数吗 $('#nights').blur(function() { var date = new Date(); var arrival = parseDate($('#arrivaldate').val

我可以在一个日期上加上天,这对于当前月份中的任何一个日期都很好。但是,如果我选择一个到达日期,比如2014-06-26,然后选择7晚,将其滚动到下一个月,则会对天数进行正确的加法,但会将其相加,就像该月是2014-05-26的当前月份一样。我没有正确地为日期添加天数吗

$('#nights').blur(function() {
        var date = new Date();
        var arrival = parseDate($('#arrivaldate').val());
        var nights = parseInt($('#nights').val());
        date.setDate(arrival.getDate()+nights);
        console.log(date);
        //convert date
        var mon = date.getMonth()+1;
        console.log(mon);
        var year = date.getFullYear();
        var day = date.getDate();
        mon = mon < 10 ? "0"+mon : mon;
        day = day < 10 ? "0"+day : day;     

        $('#departdate').val(year+'-'+mon+'-'+day);
    });         

正如@CBroe在评论中指出的那样

var日期=新日期;从当前时间开始初始化日期

date.setDatearrival.getDate+nights;将date中的月日设置为arrival和added+nights中的月日

如果今天是5月,则日期是5月,如果到达时间是6月,则第2行不会将月份日期设置为6月

试试这个:

var arrival = parseDate($('#arrivaldate').val());
var depart = new Date(arrival);
var nights = parseInt($('#nights').val());
depart.setDate(arrival.getDate()+nights);
console.log(depart);

“但是添加它就好像这个月是当前月”–这个月是当前月,因为您是在当前日期进行添加的,而不是您的到达日期…谢谢您的解释。我想这是因为我用这种方式盯着看太久了。还要注意,parseDate不是标准Javascript的一部分。您可能在某个库中有一个函数parseDate。。。。或者应该是这样