My97DatePicker:开始时间和结束时间的最大间隔为10天,并且不大于当前时间

My97DatePicker是一款很好用的日期插件,有很强的扩展性,可以随意的限制最大值和最小值,还可以调用自定义方法(通过ajax方式来获取服务器的时间)来限制日期插件的最大值。最近项目里用到一个功能,要求两个时间的最大范围不能超过10天,开始时间不能大于结束时间并且两者都不能大于当前服务器的时间。在网上查了很多资料自己又写了一部分代码,终于把功能给完善了。下面就来介绍一下主要代码(因为后台代码不太全,下面的例子里只取客户端的当时时间来演示)。

一、html部分

<body>
	<input type="text" name="jccjJmPz.beginTime" id="startTime" 
		οnclick="WdatePicker({el:'startTime',dateFmt:'yyyy-MM-dd HH:mm:ss',
	  	minDate:'#F{$dp.$D(\'endTime\',{d:-10})}',maxDate:'#F{$dp.$D(\'endTime\')||currentTime()}' })" class="Wdate" />
	至
	<input type="text" name="jccjJmPz.endTime" id="endTime"
		οnclick="WdatePicker({el:'endTime',dateFmt:'yyyy-MM-dd HH:mm:ss',
	  <span style="white-space:pre">	</span>minDate:'#F{$dp.$D(\'startTime\')}',maxDate:getMaxDate() })" class="Wdate" />
	
</body>


注:#F{}里可以写自定义脚本,#F{$dp.$D(\'endTime\')||currentTime()}, 当结束时间为空时,将调用 currentTime()来获取当前时间


二、js部分

//此方法用于获取数据库服务器的时间,代码不完整,如果有需求的话自己实现吧。
function DBCurrentTime() {
	var dbCurrentTime="";
	$.ajax({
		type:'post',
		dataType:"text",
		async:false,
		url:"../**!getDBCurrentTime.do?time="+new Date()+"'/>",//查询数据库时间用到的SQL:select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') from dual
		success:function(data,textStatus){
		    if(textStatus=="success"){
		    	dbCurrentTime=data;
		    }
		},
		error:function(){
		    dbCurrentTime = currentTime();
		}
		    	
	})
	return (dbCurrentTime);
}

function currentTime() {
        var now = new Date();
            
        var year = now.getFullYear();       
        var month = now.getMonth() + 1;     
        var day = now.getDate();           

        var hh = now.getHours();            
        var mm = now.getMinutes();          

        var clock = year + "-";

        if (month < 10)  clock += "0";
        clock += month + "-";

        if (day < 10) clock += "0";
        clock += day + " ";

        if (hh < 10)  clock += "0";
        clock += hh + ":";

        if (mm < 10) clock += '0';
        clock += mm;
        return (clock);
}
<pre name="code" class="javascript">//计算结束时间的最大值
function getMaxDate(){
	var clock=currentTime();
	var dt;
	var times=0;
	dt=$("#startTime").val();
	if(dt!=''){
		times =Date.parse(dt.replace(/-/g,'/'))+10*24*60*60*1000;//时间间隔为10天
	
		if(times-Date.parse(clock.replace(/-/g,'/'))<0){
			var d1 = new Date(times);
			var year = d1.getFullYear();       
			var month = d1.getMonth() + 1;    //月份以0开头 
			var day = d1.getDate();           

			var hh = d1.getHours();            
			var mm = d1.getMinutes();          

			var clock = year + "-";

			if (month < 10) clock += "0";
			clock += month + "-";

			if (day < 10) clock += "0";
			clock += day + " ";

			if (hh < 10) clock += "0";
			clock += hh + ":";

			if (mm < 10) clock += '0';
			clock += mm;
						
		}
	}
	return clock;
}

 
 


三、实例下载地址:http://download.csdn.net/detail/zdx1515888659/8767819

      注:下载地址里的例子有点问题,但是没法儿改了,自己对照博文改一下吧


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值