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 相关文章推荐
JSON.stringify 语法实例讲解
Mar 14 Javascript
jquery 检测元素是否存在的实例代码
Nov 19 Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 Javascript
js精美的幻灯片画集特效代码分享
Aug 29 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
Feb 21 Javascript
js仿百度登录页实现拖动窗口效果
Mar 11 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
js获取form表单所有数据的简单方法
Aug 18 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
Mar 03 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
May 04 Javascript
hammer.js实现图片手势放大效果
Aug 29 Javascript
详解Vue.js中.native修饰符
Apr 24 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新手上路(十)
2006/10/09 PHP
小偷PHP+Html+缓存
2006/12/20 PHP
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
php技巧小结【推荐】
2017/01/19 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
Javascript技术技巧大全(五)
2007/01/22 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
javascript弹出页面回传值的方法
2015/01/28 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python k-近邻算法实例分享
2014/06/11 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
python让函数不返回结果的方法
2020/06/22 Python
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
navabi英国:设计师大码女装
2019/06/25 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
学生不讲诚信检讨书
2014/09/29 职场文书
2014年培训工作总结范文
2014/11/27 职场文书
《青山不老》教学反思
2016/02/22 职场文书
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫