My97DatePicker选择两个日期范围不超过30天的demo
需求
ExtJs下使用My97DatePicker对时间范围不超过30天进行选择。
关键点
- 使用全局变量。
- 对选择完的第一个日期进行逻辑判断。(我的逻辑能力还有待加强啊)
- 因为当选择了第一个框范围在超过30天的地方,而因为第二个框已经有默认值是今天了,如果用户不碰第二个框就查询会出现超过一个月的问题。于是在选完第一个框就强制弹出第二个框。(我是不是偷懒了- . -?)
代码例子
//全局变量
var min_date = Gsui.Date.format(new Date(new Date().getTime()- 7*24*60*60*1000),'Y-m-d H:i:s');
var max_date = Gsui.Date.format(new Date(new Date().getTime()),'Y-m-d H:i:s');
items : [
{
xtype : 'tbtext',
text : '搜索时间:'
}, {
xtype : 'textfield',
inputId : 'start-date-inputEl',
name : 'filter_begin_time',
id : 'filter_begin_time',
itemId:'filter_begin_time',
value : Gsui.Date.format(new Date(new Date().getTime() - 7*24*60*60*1000),'Y-m-d H:i:s'),
listeners : {
render : function(p) {
p.getEl().on('click', function() {
var filter_end_time = $dp.$('filter_end_time');
WdatePicker({
el : 'start-date-inputEl',
dateFmt : 'yyyy-MM-dd HH:mm:ss',
maxDate : '%y-%M-%d',
onpicked : function(){
filter_end_time.click();
},
onpicking : function(dp){
min_date = dp.cal.getNewDateStr();
var start = min_date;
if(start != "" && start != null){
var endMaxDate = new Date(start);
var aa = endMaxDate.getDate();
endMaxDate.setDate(endMaxDate.getDate()+29);
var today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
today.setMilliseconds(0);
//如果30天的范围时间endMaxDate 大于 今天
if(endMaxDate.getTime()>today.getTime()){
// 设置结束时间的最大可取值为今天
min_date = start;
max_date = Gsui.Date.format(new Date(),'Y-m-d H:i:s');
}else{
// 设置结束时间的最大可取值为endMaxDate
min_date = start;
max_date = Gsui.Date.format(new Date(endMaxDate.getTime()),'Y-m-d H:i:s');
}
}
// 如果清空了开始时间,重设结束时间的范围,到今天为止
else{
// 设置结束时间的最大可取值为today
min_date = start;
max_date = Gsui.Date.format(new Date(),'Y-m-d H:i:s');
}
}
});
});
}
}
},{
xtype : 'textfield',
inputId : 'end-date-inputEl',
name : 'filter_end_time',
id : 'filter_end_time',
itemId : 'filter_end_time',
value : Gsui.Date.format(new Date(new Date().getTime()),'Y-m-d H:i:s'),
listeners : {
render : function(p) {
p.getEl().on('click', function() {
WdatePicker({
el : 'end-date-inputEl',
dateFmt : 'yyyy-MM-dd HH:mm:ss',
minDate : min_date,
maxDate : max_date
});
});
}
}
},{
text : '查询',
itemId : 'queryPicBtn'
}
]
参考文章
My97DatePicker两个日期范围不超过30天,第一个小于第二个,都不大于当前日期
WdatePicker-限制日期选择
初始化后默认是选择一个星期的范围:

My97DatePicker选择两个日期范围不超过30天的demo的更多相关文章
- WdatePicker文本框显示当前日期和时间限制<My97DatePicker两个日期范围不超过30天,第一个小于第二个,都不大于当前日期 >
My97DatePicker是很不错的一个日期选择插件,体积只有几十k但是功能非常强大.官网:http://www.my97.net/ 能满足很多苛刻的要求. WdatePicker文本框显示当前日期 ...
- 日期选择时两个日期之间的动态控制--My97datepicker日期选择控件
实现效果:如果先选离店日期,再选入住日期的话,入住日期大于离店日期则离店日期+1天否则离店日期不变,先选入店再选离店离店,离店只能选之后的日期,且两个日期之间最多间隔88天 <div class ...
- my97DatePicker选择年、季度、月、周、日(转)
My97DatePicker是一款非常灵活好用的日期控件.使用非常简单. 下面总结下使用该日历控件选择年.季度.月.周.日的方法. 1.选择年 <input id="d1212&quo ...
- JAVA 比较两个日期相差的天数
在实际的应用中,我们经常会比较两个日期相差的天数,下面我们通过java方法判断两个日期所差的额天数. 具体内容,请看下面的代码: package com.jd.jr.fclient.test; imp ...
- 在Oracle中计算两个日期间隔的天数、月数和年数
一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy')-to_date('07/01/2015','mm/ ...
- MySQL活动期间订单满600元并且在活动日期之前超过30天没有下过单_20161030
计算 活动期间订单满600元并且在活动日期之前超过30天没有下过单 首先拿到这个需求,首先需要明确活动日期区间 10.29-10.31,其次要取这个时间段内某天订单额最高的那天及订单额,再次需要判断这 ...
- element ui 日期控件范围时间限制记录、以及计算两个日期之间的天数
日期的筛选经常会有最小的日期选择,例如:当前日期 :clearable="false" :picker-options="pickerOptions0" val ...
- Java技巧——比较两个日期相差的天数
Java技巧——比较两个日期相差的天数 摘要:本文主要记录了在Java里面如何判断两个日期相差的天数. 判断两个Date类型的日期之间的天数 通过计算毫秒数判断: public static void ...
- JAVA中计算两个日期时间的差值竟然也有这么多门道
上半年春招的时候,作为面试官,对于面试表现的不错的同学会要求其写一小段代码看看.题目很简单: 给定一个日期,然后计算下距离今天相差的天数. 本以为这么个问题就是用来活跃面试氛围的,但是结果却让人大跌眼 ...
随机推荐
- 算法--链表的K逆序问题
转载请标明出处http://www.cnblogs.com/haozhengfei/p/9e6f4dda3138cf9fab17f996ec85b624.html 链表的K逆序问题 链表的k逆 ...
- 短时间内多个请求状态更新,导致react 不能及时响应问题总结
个人总结 这段时间项目中遇到这样一个问题,旧项目中增加了一个聊天对话的模块,这是其他同学负责的部分,因为要有消息提醒,所以做了个轮询.消息提示因为是页头部分,所以每个模块都会引用到.这是背景. 现象 ...
- poweshell批量删除某类型文件
错误方法 rm *.o" -recurse 按照提示,rm(remove-item)是可以递归删除子文件夹的.但是这个方法确实无效.在他们的示例里面找到说明: --------------- ...
- Linuxc - 多c文件程序编译执行
多文件使用,一起编译 定义max.h int max(int a,int b); 定义max.c #include "max.h" int max(int a,int b) { i ...
- 基于esp8266的智能台灯DIY
研究esp8266已经很久了,特制作了一个智能灯, 代码如下,总结几点 一.关于arduino pro mini 的烧写方法 一定要在编译成功之后的下载提示出现的瞬间,单击复位按钮.才可进入烧写 二. ...
- linux_磁盘分区
分区并没有数据内容只是改变分区表,保存在0磁头,0磁道1扇区除MBR引导后64bytes中,只能有4个组分区,4个以上要一个扩展分区 引导MBR,保存在446字节中 磁盘想要存放数据,首先要分区,可以 ...
- linkin大话面向对象--内部类
内部类说白了就是类中有类 内部类:嵌套类 外部类:宿主类 内部类主要有以下作用:记住了3个字:多继承... 1,内部类提供了更好的封装,可以把内部类隐藏在外部类中,不允许同一个包中的其他类访问该类. ...
- java IO(六):额外功能处理流
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- PHP错误杂记
Notice: Only variables should be passed by reference in-- 原因:The problem is, that end requires a ref ...
- Redis Crackit漏洞防护
Redis Crackit漏洞利用和防护 注意:本文只是阐述该漏洞的利用方式和如何预防.根据职业道德和<中华人民共和国计算机信息系统安全保护条例>,如果发现的别人的漏洞,千万不要轻易入侵, ...