用Js判断输入的时间是否有效

JavaScript015

用Js判断输入的时间是否有效,第1张

实例:检测输入的日期时间格式是否正确。

<script type="text/javascript">

function checknow(){

var obj = document.getElementById("dt")

if(!/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(obj.value)) alert("请输入正确的日期时间格式!")

}

</script>

<input type="text" id="dt" value="2016-09-09 11:08:33" />

<input type="button" value="检测" onClick="checknow()" />

以上实例点击检测后无报错,表示格式正确。你故意改错再检测就会出现错误提示了。

如果只需要检测日期或时间,可以自己改一下正则式,应该容易看懂的。

<html>

<head><title>test</title></head>

<body>

<input id="hour" style="width:2em" value="5" />:<input id="min" style="width:2em" value="20" />

<button id="do">确定</button>

<div id="info" style="display:none">

当前时间:<span id="cur_time"></span><br>

时 间 差:<span id="time_span"></span>

</div>

<script type="text/javascript">

function $(id){ return document.getElementById(id)}

function time_add_sec(secs){

if(secs != 0){ secs = 1}

window.curtime += secs

var span = Math.abs(curtime - starttime)

var cur_time = []

var time_span = []

cur_time[0] = Math.floor(curtime / 3600)

cur_time[1] = Math.floor((curtime % 3600) / 60)

cur_time[2] = Math.floor(curtime % 60)

time_span[0] = Math.floor(span / 3600)

time_span[1] = Math.floor((span % 3600) / 60)

time_span[2] = Math.floor(span % 60)

$("cur_time").innerHTML = cur_time.join(":")

$("time_span").innerHTML = time_span.join(":")

}

function time_span(){

var now = new Date()

var cur_time = []

cur_time[0] = now.getHours()

cur_time[1] = now.getMinutes()

cur_time[2] = now.getSeconds()

window.curtime = cur_time[0]*3600+cur_time[1]*60+cur_time[2]

window.starttime = $("hour").value*3600+$("min").value*60

time_add_sec(0)

$("info").style.display = "block"

setInterval(time_add_sec,1000)

}

window.onload=function (){ $("do").onclick = time_span}

</script>

</body>

</html>

这个算法占用系统资源相当少了,跳动应该是你电脑卡吧,我的电脑一点问题都没有。

你全部换算成 数字型的时间戳(毫秒) 然后2个数字减一减得差,把差和86400000(1天)x30做比较

var date1=new Date() //开始时间

var date2=new Date() //结束时间

var date3=date2.getTime()-date1.getTime() //时间差的毫秒数