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+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
详解JavaScript对W3C DOM模版的支持情况
Jun 16 Javascript
Windows系统下Node.js的简单入门教程
Jun 23 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
Nov 01 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 Javascript
微信小程序表单验证错误提示效果
May 19 Javascript
js获取css的各种样式并且设置他们的方法
Aug 22 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
利用React Router4实现的服务端直出渲染(SSR)
Jan 07 Javascript
layui 动态设置checbox 选中状态的例子
Sep 02 Javascript
node后端服务保活的实现
Nov 10 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版(1)
2006/10/09 PHP
php Smarty模板生成html文档的方法
2010/04/12 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
Python调用C语言开发的共享库方法实例
2015/03/18 Python
python实现二叉树的遍历
2017/12/11 Python
python skimage 连通性区域检测方法
2018/06/21 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
在pycharm中显示python画的图方法
2019/08/31 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
奥巴马的演讲稿
2014/05/15 职场文书
预备党员转正考核材料
2014/06/03 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
2016元旦主持人开场白
2015/12/03 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书