Jquery ui datepicker设置日期范围,如只能隔3天(实现代码)
来源: 阅读:1056 次 日期:2016-07-06 09:58:50
温馨提示: 小编为您整理了“Jquery ui datepicker设置日期范围,如只能隔3天(实现代码)”,方便广大网友查阅!

下面小编就为大家带来一篇Jquery ui datepicker 设置日期范围,如只能隔3天【实现代码】。小编觉得挺不错的,现在分享给大家,也给大家做个参考

最近的后台项目前端使用了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天【实现代码】就是小编分享给大家的全部内容了,希望能给大家一个参考

更多信息请查看网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map