Bootstrap (Twitter) Вычисление разницы датпикера возвращает "NaN"

Вопрос:

Следующий код возвращает значение «NaN» (не номер) в день изменения. Поток правильный, я думаю, но я не мог понять, как он возвращает NaN.

$(function() {
$('.datepicker').datepicker({format: "yyyy-mm-dd"});

var calculateDuration = function() {
var start_date = $('#start_date').datepicker('getDate');
var end_date = $('#end_date').datepicker('getDate');
document.getElementById('reservation_duration').value = (Number(end_date) - Number(start_date)) / 86400000;
}

$('#end_date').change(calculateDuration);
$('#start_date').change(calculateDuration);

});

Это датпикер: http://www.eyecon.ro/bootstrap-datepicker/

Лучший ответ:

.datepicker('getDate') не является допустимым методом. Вероятно, вам просто нужно значение поля, например $('#start_date').val()

UPDATE Вам все равно нужно преобразовать значение поля в формат, подходящий для арифметики:

var startDate = new Date($('#start_date').val());
var endDate = new Date($('#end_date').val());
var delta = endDate - startDate;

Ответ №1

Последующее предложение Андре Диона и заставило его работать!

$(function() {
$('.datepicker').datepicker({format: "yyyy-mm-dd"});

var calculateDuration = function() {
var startDate = new Date($('#start_date').val());
var endDate = new Date($('#end_date').val());
var diff = endDate - startDate;
document.getElementById('reservation_duration').value = (Number(diff) / 86400000) +1;
}

$('#end_date').change(calculateDuration);
$('#start_date').change(calculateDuration);

});

Оцените статью
TechArks.Ru
Добавить комментарий