2013-02-26 205 views
0

我正在使用jQuery Datepicker。我能夠計算兩個選定日期之間的天數,但我需要能夠選擇日期範圍(選擇'fromdate'變爲'最小'代表'todate',選擇'todate'變成'最大'代表'從日期')。 我使用此代碼:如何計算jQuery Datepicker中的天數和日期範圍?

<script type="text/javascript"> 
$(document).ready(function() { 
var selector = function (dateStr) { 
     var d1 = $('.fromdate').datepicker('getDate'); 
     var d2 = $('.todate').datepicker('getDate'); 
     var diff = 1; 
     if (d1 && d2) { 
      diff = diff + Math.floor((d2.getTime() - d1.getTime())/86400000); // ms per day 
     } 
     $('.calculated').val(diff); 
     $('.minim').val(d1) 
    } 
$('.fromdate').datepicker({ 
       dateFormat : 'yy-mm-dd', 
       changeMonth: true, 
       changeYear: true, 
       minDate: 'minim' 
}); 
$('.todate').datepicker({ 
       dateFormat : 'yy-mm-dd', 
       changeMonth: true, 
       changeYear: true, 
       minDate: 'fromdate' 
}); 
$('.fromdate,.todate').change(selector) 
}); 
</script> 

謝謝!

+0

是這樣的[小提琴](http://jsfiddle.net/BXMv6/)? – 2013-02-26 09:13:28

+0

是的,有點扭曲。但現在我想我會管理。 – 2013-02-26 09:34:31

+0

@Bojan Kovacevic - 是的,工作!非常感謝你! – 2013-02-26 09:48:30

回答

0

感謝Bojan Kovacevic我設法解決了我的問題。它是這樣的:

<script type="text/javascript"> 
$(document).ready(function() { 
var selector = function (dateStr) { 
     var d1 = $('.fromdate').datepicker('getDate'); 
     var d2 = $('.todate').datepicker('getDate'); 
     $('.fromdate').datepicker("option", "maxDate",d2); //new line   
     $('.todate').datepicker("option", "minDate",d1); // new line 
     var diff = 1; 
     if (d1 && d2) { 
      diff = diff + Math.floor((d2.getTime() - d1.getTime())/86400000); 
     } 
     $('.calculated').val(diff); 
     $('.minim').val(d1) 
    }  
$(".fromdate").datepicker({ 
       dateFormat : 'yy-mm-dd', 
       changeMonth: true, 
       changeYear: true, 
}); 
$('.todate').datepicker({ 
       dateFormat : 'yy-mm-dd', 
       changeMonth: true, 
       changeYear: true, 
       minDate: ($(".fromdate").is(":visible") && $(".todate").html() != ""? $('.todate').datepicker('getDate'): 'null'), // new line 
}); 
$('.fromdate,.todate').change(selector) 
}); 

2

看看這DEMO鏈接這將幫助你計算兩個日期之間選擇的天數,並能夠選擇一個日期範圍。

$('.fromdate').datepicker().bind("change", function() { 
    var minValue = $(this).val(); 
    minValue = $.datepicker.parseDate("yy-mm-dd", minValue); 
    $('.todate').datepicker("option", "minDate", minValue); 
    calculate(); 
}); 
$('.todate').datepicker().bind("change", function() { 
    var maxValue = $(this).val(); 
    maxValue = $.datepicker.parseDate("yy-mm-dd", maxValue); 
    $('.fromdate').datepicker("option", "maxDate", maxValue); 
    calculate(); 
}); 

我希望這會幫助你。