您的位置:首页 > 其它

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

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

一、html部分

<body>
<input type="text" name="jccjJmPz.beginTime" id="startTime"
onclick="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"
onclick="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

注:下载地址里的例子有点问题,但是没法儿改了,自己对照博文改一下吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: