Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
内容摘要
最近的后台项目前端使用了jquery ui 日历控件自然就使用了jquery ui 的 datepicker
后台数据比较好大,一般是千万级的和百万级的关联,查询会很慢,所以后加想多加些过滤条件,其中
后台数据比较好大,一般是千万级的和百万级的关联,查询会很慢,所以后加想多加些过滤条件,其中
文章正文
最近的后台项目前端使用了jquery ui 日历控件自然就使用了jquery ui 的 datepicker
后台数据比较好大,一般是千万级的和百万级的关联,查询会很慢,所以后加想多加些过滤条件,其中时间要设置为必选,
产品要叫日历控件做成只能做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版本
下载好了之后
引入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | <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" title= "日期范围不能大于3天" /><input type= "text" value= "" name= "endDate" readonly= "true" id= "endDate" title= "日期范围不能大于3天" /> |
以上这篇Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持phpstudy。
代码注释