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

JavaScript08

用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()" />

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

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

 1 短时间,形如 (23:30:06)

function isTime(str)

{

var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/)

if (a == null) {alert('输入的参数不是时间格式') return false}

if (a[1]>24 || a[3]>60 || a[4]>60)

{

alert("时间格式不对")

return false

}

return true

}

2. 短日期,形如 (2008-09-13)

function strDateTime(str)

{

var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/) 

if(r==null)return false 

var d= new Date(r[1], r[3]-1, r[4]) 

return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4])

}

3 长时间,形如 (2008-09-13 23:30:06)

function strDateTime(str)

{

var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/ 

var r = str.match(reg) 

if(r==null)return false 

var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]) 

return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7])

}