Я могу добавить дни к дате, отлично подходящие для любой даты в месяц в текущем месяце. Однако, если я 2014-06-26
дату прибытия, скажем, 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 = new Date();
инициализированная date
с текущего времени
date.setDate(arrival.getDate()+nights);
устанавливает день месяца в date
до дня месяца по arrival
и добавляет +nights.
Если сегодня в мае, date
в мае, и если arrival
в июне, вторая строка не устанавливает месяц на date
до июня.
Попробуй это:
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 где-нибудь в библиотеке .... или, может быть, это Date.parse()