2015-11-27 3 views
1

Я пытаюсь добавить 3 дня до даты я получаю от JQuery Datepicker в качестве переменной, как я показываю в этом примере:JQuery UI Datepicker, добавьте дней в переменной

var dateSelected = fromDateInput.datepicker('getDate'); 
var count = 3; 

var lol = dateSelected.setDate(dateSelected.getDate() + count); 
console.log(lol); 

Если я использую переменную I получите это в консоли, например: 1449615600000.

Если я делаю это так:

var dateSelected = fromDateInput.datepicker('getDate'); 
var count = 3; 

dateSelected.setDate(dateSelected.getDate() + count); 
console.log(dateSelected); 

I получит правильную дату (дату я выбираю в Datepicker + 3 дня)

Почему я не могу использовать его в переменной?

ответ

1

Попробуйте это:

var dateSelected = fromDateInput.datepicker('getDate'); 
var count = 3; 

var dateUpdated = dateSelected.getDate() + count; 
dateSelected.setDate(dateUpdated); 
console.log(dateUpdated); 

Метод setDate не возвращает ничего. Обратитесь к документации: jQuery UI DatePicker setDate

0

Попробуйте:

var d = new Date("mm/dd/yyyy"); 
d.setDate(d.getDate()+3); 
+1

Было бы хорошо, если бы вы предложили еще несколько объяснений с ответом. – Guanxi

0

Результатом SETDATE является число миллисекунд с полуночи 1 января 1970 года В вашем втором примере вы используете реальный объект даты, который почему второй пример дает вам то, что вы хотите, а первое - нет.

+0

@krlzlx Метод getDate объекта jquery возвращает объект даты javascript. Последующий вызов setDate вызывается в объекте Date не на объекте JQuery, поэтому неверно сказать, что setDate ничего не возвращает. –