2013-08-21 53 views
0

嘗試在此代碼中設置todate 4天+ fromdate選定值,並且無法使其工作。我想要的是當一個人選擇第一個日曆日期時,我希望第二個分鐘日期超過所選第一個日期的值4天。range datepicker set minDate

<?php 
// has all script and css includes 
include('includes/header.php'); 
?> 
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> 
<div class="container"> 
<div class="row"> 
<div class="span3"></div> 
<div class="span9"> 
<input class='fromdate' id='fromdate' /> 
<input class='todate' id='todate' /> 
<input class='calculated' /> 
<!-- <input class='minim' /> --> 
</div> 
</div> 
</div> 
<script> 
$('.fromdate').datepicker({ 
    dateFormat: 'mm-dd-yy', 
    minDate:(+4) 

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

function calculate() { 
    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) 
} 
</script> 

回答

3

我發現answer,它會像下面,

$(document).ready(function() { 
    $("#fromdate").datepicker({ 
     dateFormat: "mm-dd-yy", 
     minDate: 0, 
     onSelect: function (date) { 
      var date2 = $('#fromdate').datepicker('getDate'); 
      date2.setDate(date2.getDate() + 4); 
      $('#todate').datepicker('setDate', date2); 
      //sets minDate to dt1 date + 4 
      $('#todate').datepicker('option', 'minDate', date2); 
     } 
    }); 
    $('#todate').datepicker({ 
     dateFormat: "mm-dd-yy", 
     onClose: function() { 
      var dt1 = $('#fromdate').datepicker('getDate'); 
      var dt2 = $('#todate').datepicker('getDate'); 
      //check to prevent a user from entering a date below date of dt1 
      if (dt2 <= dt1) { 
       var minDate = $('#todate').datepicker('option', 'minDate'); 
       $('#todate').datepicker('setDate', minDate); 
      } 
     } 
    }); 
}); 

demo

+0

非常感謝你的幫助! – DSmith