欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

My97DatePicker_限制开始日期和结束日期在同一个月 My97DatePicker限制开始日期和结束日期在同一个月 

程序员文章站 2024-03-11 12:16:01
...

PS:最近使用springmvc+ibatis+mysql做项目的后台,涉及到大量统计页面.

其中一个表已有了400多万行数据,优化sql和增加索引后,效率仍然低下,并且数据还处于几何增长中.

几经折腾决定按月分表,月底把数据转移到上个月份命名的表中,当月表则不加后缀:即table_1303,table_1304,table(当月)...

之前大量的统计页面都使用了My97DatePicker时间控件来做查询.

因为按月加表是动态的,所以需要在查询过程中做限制,查询的起始时间和结束时间是同一个月.

网上搜索没有现成的,便自己写了一个js,这里备忘,也方便需要的人查找.

 

最后再附上简单的流程图.

碰到个问题 使用form:input时,控件中的$dp.$D便不能用,页面报错.猜测为在表单中clientID不一致了,

但不解.

 

 

 

<td class="label" width="10%">开始时间:</td>
<td width="10%"><input class="Wdate" type='text'
	id="beginTime" name="beginTime" value='${beginTime}'
onFocus="WdatePicker({minDate:'2013-04-01',maxDate:'#F{$dp.$D(\'endTime\')||\'%y-%M-%d\'}'})" />
</td>
<td width="10%"></td>
<td class="label" width="10%">结束时间:</td>
<td width="10%"><input class="Wdate" type='text'
	id='endTime' name='endTime' value='${endTime}'
	onFocus="var date=limitMonthDate(2);WdatePicker({minDate:'#F{$dp.$D(\'beginTime\')||\'2013-04-01\'}',maxDate:date})" />
</td>

 

 控件的ofFocus事件中实现了以下功能:

        开始结束日期不得小于数据库表的创建时间(2013-04-01),且不得大于当天;

        结束日期不得小于起始日期,且不得大于当月;

       

 js的limitMonthDate()方法功能:

       限制两个时间为同一个月份.

 

 

<script language="javascript">
	//限制开始和结束时间为同一个月
	function limitMonthDate(e) {
		var DateString;
		if (e == 2) {
			var beginDate = $dp.$("beginTime").value;
			if (beginDate != "" && beginDate != null) {
				var limitDate = new Date(beginDate);
				limitDate.setDate(new Date(limitDate.getFullYear(), limitDate
						.getMonth() + 1, 0).getDate()); //获取此月份的天数
				DateString = limitDate.getFullYear() + '-'
						+ (limitDate.getMonth() + 1) + '-'
						+ limitDate.getDate();
				return DateString;
			}
		}
		if (e == 1) {
			var endDate = $dp.$("endTime").value;
			if (endDate != "" && endDate != null) {
				var limitDate = new Date(endDate);
				limitDate.setDate("1"); //设置闲置时间为月初
				DateString = limitDate.getFullYear() + '-'
						+ (limitDate.getMonth() + 1) + '-'
						+ limitDate.getDate();
				return DateString;
			}
		}
		
	}
</script>



 
My97DatePicker_限制开始日期和结束日期在同一个月
            
    
    
        My97DatePicker限制开始日期和结束日期在同一个月 
 

 

  • My97DatePicker_限制开始日期和结束日期在同一个月
            
    
    
        My97DatePicker限制开始日期和结束日期在同一个月 
  • 大小: 114.8 KB