Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】


Posted in Javascript onMay 04, 2016

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

Javascript 相关文章推荐
csdn 博客的css样式 v3
Feb 24 Javascript
Mootools 1.2教程 定时器和哈希简介
Sep 15 Javascript
20个实用的JavaScript技巧分享
Nov 28 Javascript
JS去除iframe滚动条的方法
Apr 01 Javascript
在JavaScript中使用开平方根的sqrt()方法
Jun 15 Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 Javascript
jQuery阻止移动端遮罩层后页面滚动
Mar 15 Javascript
js微信分享实现代码
Oct 11 Javascript
bootstrap日期插件daterangepicker使用详解
Oct 19 Javascript
在iFrame子页面里实现模态框的方法
Aug 17 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
Jan 21 Javascript
开启BootStrap学习之旅
May 04 #Javascript
JavaScript入门教程之引用类型
May 04 #Javascript
javascript和jquery实现用户登录验证
May 04 #Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
May 04 #Javascript
纯JS代码实现气泡效果
May 04 #Javascript
DWR中各种java方法的调用
May 04 #Javascript
js实现div在页面拖动效果
May 04 #Javascript
You might like
php adodb介绍
2009/03/19 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python中subprocess的简单使用示例
2015/07/28 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
Boden美国官网:英伦原创时装品牌
2017/07/03 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
卫校中专生的自我评价
2014/01/15 职场文书
大学活动邀请函
2014/01/28 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
迟到检讨书300字
2014/02/14 职场文书
仓管员岗位责任制
2014/02/19 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript