下面小編就為大家?guī)硪黄狫query ui datepicker 設(shè)置日期范圍,如只能隔3天【實現(xiàn)代碼】。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考
最近的后臺項目前端使用了jquery ui 日歷控件自然就使用了jquery ui 的 datepicker
后臺數(shù)據(jù)比較好大,一般是千萬級的和百萬級的關(guān)聯(lián),查詢會很慢,所以后加想多加些過濾條件,其中時間要設(shè)置為必選,
產(chǎn)品要叫日歷控件做成只能做3天之內(nèi)的查詢,且日歷控件要做成這樣的要求,如果前一個日歷控制選擇了2013年9月1號
后面的日歷控件只能選擇2013年9月1號,2013年9月2號,2013年9月3號,其他的全部要不能選,本來想叫他給提示的,領(lǐng)導(dǎo)非要這么干
真是領(lǐng)導(dǎo)一句話,碼工辛苦好幾年啊。。。好吧還好jquery ui 的日歷控件提供了這個功能,很強大
首先去官網(wǎng)上(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)設(shè)置結(jié)束時間(endDate)的最小時間和最大時間
option = "minDate"; //最小時間
var selectedTime = getTimeByDateStr(selectedDate);
var minTime = selectedTime;
//最小時間 為開第一個日歷控制選擇的時間
targetDate = new Date(minTime);
//設(shè)置結(jié)束時間的最大時間
optionEnd = "maxDate";
//因為只能做三天內(nèi)的查詢 所以是間隔2天 當前時間加上2*24*60*60*1000
targetDateEnd = new Date(minTime+2*24*60*60*1000);
}else{
// 如果是選擇了結(jié)束時間(endDate)設(shè)置開始時間(startDate)的最小時間和最大時間
option = "maxDate"; //最大時間
var selectedTime = getTimeByDateStr(selectedDate);
var maxTime = selectedTime;
targetDate = new Date(maxTime);
//設(shè)置最小時間
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;
}
//根據(jù)日期字符串取得其時間
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" title="日期范圍不能大于3天"/><input type="text" value="" name="endDate" readonly="true" id="endDate" title="日期范圍不能大于3天"/>
以上這篇Jquery ui datepicker設(shè)置日期范圍,如只能隔3天【實現(xiàn)代碼】就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考