2013-07-05 3 views
0

Следующий код возвращает значение «NaN» (не номер) в день изменения. Поток правильный, я думаю, но я не мог понять, как он возвращает NaN.Bootstrap (Twitter) Вычисление разницы датпикера Возврат «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); 

}); 

Это DatePicker: http://www.eyecon.ro/bootstrap-datepicker/

+0

лол, извините за ошибку – PiLHA

+0

@PiLHA лол, не беспокойтесь! :) –

ответ

4

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

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

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

Все еще возвращает NaN :( –

+0

Ну, вам нужно будет преобразовать строку в подходящее значение. Просто выбирая datestamp, такую ​​как '07/05/2013', как вы пытаетесь это сделать, вернется' NaN ':' console.log (Number ('07/05/2013 ')) ' –

+0

Я обновил свой ответ, чтобы включить расчет. –

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); 

}); 
Смежные вопросы