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 相关文章推荐
同一页面多个商品倒计时JS 基于面向对象的javascript
Feb 16 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
jQuery中noConflict()用法实例分析
Feb 08 Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
Aug 17 Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 Javascript
前端开发之便利店收银系统代码
Dec 27 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
总结JavaScript的正则与其他语言的不同之处
2016/08/25 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
python django事务transaction源码分析详解
2017/03/17 Python
Python实现嵌套列表去重方法示例
2017/12/28 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
档案室主任岗位职责
2014/02/12 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
员工担保书范本
2015/09/22 职场文书
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js