Jquery ui datepicker設置日期范圍,如只能隔3天(實現(xiàn)代碼)

字號:


    下面小編就為大家?guī)硪黄狫query ui datepicker 設置日期范圍,如只能隔3天【實現(xiàn)代碼】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考
    最近的后臺項目前端使用了jquery ui 日歷控件自然就使用了jquery ui 的 datepicker
    后臺數據比較好大,一般是千萬級的和百萬級的關聯(lián),查詢會很慢,所以后加想多加些過濾條件,其中時間要設置為必選,
    產品要叫日歷控件做成只能做3天之內的查詢,且日歷控件要做成這樣的要求,如果前一個日歷控制選擇了2013年9月1號
    后面的日歷控件只能選擇2013年9月1號,2013年9月2號,2013年9月3號,其他的全部要不能選,本來想叫他給提示的,領導非要這么干
    真是領導一句話,碼工辛苦好幾年啊。。。好吧還好jquery ui 的日歷控件提供了這個功能,很強大
    首先去官網上(http://jqueryui.com/download/#!version=1.9.2)下載jquery ui 包 我用的是1.92版本
    下載好了之后
    引入:
    <link href="jquery-ui/1.9.2/css/smoothness/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery-ui/1.9.2/js/jquery-ui-1.9.2.custom.js"></script>
    <script type="text/javascript" src="jquery-ui/1.9.2/datepicker-init.js"></script>
    <script type="text/javascript"> 
    $(function(){
     var dates = $("#startDate,#endDate");
     var option;
     var targetDate;
     var optionEnd;
     var targetDateEnd;
     dates.datepicker({
      showButtonPanel:false,
      onSelect: function(selectedDate){ 
       if(this.id == "startDate"){
       // 如果是選擇了開始時間(startDate)設置結束時間(endDate)的最小時間和最大時間
       option = "minDate"; //最小時間
       var selectedTime = getTimeByDateStr(selectedDate);
       var minTime = selectedTime;
         //最小時間 為開第一個日歷控制選擇的時間
       targetDate = new Date(minTime); 
       //設置結束時間的最大時間
       optionEnd = "maxDate";
         //因為只能做三天內的查詢 所以是間隔2天 當前時間加上2*24*60*60*1000
       targetDateEnd = new Date(minTime+2*24*60*60*1000);
       }else{
       // 如果是選擇了結束時間(endDate)設置開始時間(startDate)的最小時間和最大時間
       option = "maxDate"; //最大時間
       var selectedTime = getTimeByDateStr(selectedDate);
       var maxTime = selectedTime;
       targetDate = new Date(maxTime);
       //設置最小時間 
       optionEnd = "minDate";
       targetDateEnd = new Date(maxTime-2*24*60*60*1000);
       }
       dates.not(this).datepicker("option", option, targetDate); 
       dates.not(this).datepicker("option", optionEnd, targetDateEnd); 
      }
     });
    // 檢查起始時間不能超過3天
    function checkTimeInOneMonth(startDate, endDate){
        var startTime = getTimeByDateStr(startDate);
     var endTime = getTimeByDateStr(endDate);
     if((endTime - startTime) > 2*24*60*60*1000){
      return false;
     }
     return true;
    }
    //根據日期字符串取得其時間
    function getTimeByDateStr(dateStr){
     var year = parseInt(dateStr.substring(0,4));
     var month = parseInt(dateStr.substring(5,7),10)-1;
     var day = parseInt(dateStr.substring(8,10),10);
     return new Date(year, month, day).getTime();
    }
    </script> <input type="text" value="" name="startDate" readonly="true" id="startDate"/><input type="text" value="" name="endDate" readonly="true" id="endDate"/>
    以上這篇Jquery ui datepicker設置日期范圍,如只能隔3天【實現(xiàn)代碼】就是小編分享給大家的全部內容了,希望能給大家一個參考