0

次のコードは、変更日に "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/

4

2 に答える 2

4

.datepicker('getDate')有効な方法ではありません。おそらく、フィールドの値が必要なだけです。たとえば、$('#start_date').val()

更新 フィールド値を算術に適した形式に変換する必要があります。

var startDate = new Date($('#start_date').val());
var endDate = new Date($('#end_date').val());
var delta = endDate - startDate;
于 2013-07-05T14:55:34.423 に答える
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);

});
于 2013-07-05T15:24:50.363 に答える