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