45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 编程代码 > 阅读资讯:怎么样在Jquery ui datepicker中设置日期范围?

怎么样在Jquery ui datepicker中设置日期范围?

2016-06-15 06:44:47 来源:www.45fan.com 【

怎么样在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版本

下载好了之后

引入:

<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天【实现代码】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持路饭。


本文地址:http://www.45fan.com/bcdm/53559.html
Tags: 日期 jquery datepicker
编辑:路饭网
推广内容
推荐阅读
热门推荐
推荐文章
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部