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 相关文章推荐
javascript 一个函数对同一元素的多个事件响应
Jul 25 Javascript
JavaScript/jQuery 表单美化插件小结
Feb 14 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
Dec 31 Javascript
详解JavaScript的回调函数
Nov 20 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
Dec 08 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
Jun 06 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
May 08 jQuery
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
vue-lazyload图片延迟加载插件的实例讲解
Feb 09 Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 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
简单的页面缓冲技术
2006/10/09 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Django 导出项目依赖库到 requirements.txt过程解析
2019/08/23 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
如何表示python中的相对路径
2020/07/08 Python
详解python中的异常捕获
2020/12/15 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
酒店公关部经理岗位职责
2013/11/24 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
干部作风建设工作总结
2014/10/29 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
护士年终个人总结
2015/02/13 职场文书
工程主管竞聘书
2015/09/15 职场文书
Mysql排序的特性详情
2021/11/01 MySQL