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