用Jquery写一个开始时间与结束时相差不能超过24小时的验证。

如题所述

<!-- 以下代码放到 .html 文件,用浏览器打开就有效果,注释也写了,自己要理解 -->
<!DOCTYPE html>
<html>  
<head> 
    <title>校验时间</title> 
</head>
<body>   
<!-- input 使用 onblur,失去光标的时候,调用方法 check() -->
    <input id="begindate" value="2015-1-1 13:00:00" onblur="check()" />
    <input id="enddate" value="2015-1-2 13:00:01" onblur="check()" />
</body>
</html>

<script type="text/javascript">
// 光标默认选中 enddate
document.getElementById("enddate").focus();
// 校验时间
function check(){
try{
// 获取时间
var begindate = document.getElementById("begindate").value;
var enddate = document.getElementById("enddate").value;
var begin = changeDate(begindate);
var end = changeDate(enddate);
// 获取毫秒
checkDate(begin,end);
} catch (e) {
alert(e.message);
}

// 传入两个时间参数
function checkDate(begindate,enddate){
try { 
// 获取毫秒
var beginsecond = begindate.getTime();
var endsecond = enddate.getTime(); 
var days = (endsecond-beginsecond)/(24*3600*1000);
if(days>1){
alert("超过24小时");
}else{
alert("没有超过24小时");
}
} catch (e) {
alert("比较时间出错,原因:" + e.message);
}
}
// 如果你的时间是字符串 yyyy-MM-dd hh:mm:ss ,下面函数可以转成时间
function changeDate(str){ 
try{
var newstr = str.replace(/-/g,'/'); 
return new Date(newstr);
}catch (e){
alert("转换时间出错,原因:" + e.message);
}
}
</script>

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-14

html5 在谷歌中浏览:

开始时间:<input type="date" id="startTime" />

结束时间:<input type="date" id="endTime" />

<input type="button" value="提交" id="submitBtn"/>

<script type="text/javascript">
$(function(){
 
   //表单提交验证
   $('#submitBtn').click(function(){
     var $startTime= $('#startTime').val();
    var $endTime= $('#endTime').val();
     var time = ( Date.parse($endTime)-Date.parse($startTime)) / 3600 / 1000; //小时差

 if(time!=24){
  alert('NO');
 }else{
  alert('OK')
 }
   })
})
</script>

追问

是自动触发的,没有按钮

追答

自动触发不就是改事件么, 把click事件改为你想要触发的事件不久行了吗,拜托,这个东西就不要追问了好吧。
click改为blur
$('#endTime').blur(function(){
});

追问

不好意思,我是初学者

第2个回答  2014-05-14
http://www.jq-school.com/Article.aspx?id=3
这个里面应该有你要的,你看看~
相似回答