JAVASCRIPT如何将格式为hh:mm:ss的文本转换成时间?

JavaScript017

JAVASCRIPT如何将格式为hh:mm:ss的文本转换成时间?,第1张

严格来说,js中不存在单独的时间类型,而是日期+时间的方式,所以要想把文本形式的时间字串转换为时间,必须附带一个日期,最好的办法就是把日期设为 1970年1月1日,因为js的时间戳就是从这一天开始算的:

var t = "12:45:18"

var time = new Date("1970-1-1 "+t)

或者

var time = new Date(70,0,1,...t.split(":"))

<html>

<body>

</body>

<script>

window.onload = function(){

var ary = [

'12:23:23:32'

,'12:23:34'

,'25:21:23'

,'-12:23:34'

,'12:63:34'

,'12:53:60'

,'12:59:0'

,'12:59ad:0'

,'122:59:0'

,'12:59:110'

,'s12:59:0'

,' 12:59: 00'

,' 00:59: 00'

,' 00:00: 00'

]

var result = []

//分割符号

var sp = ":"

for(var i = 0 , j = ary.lengthi <j i++){

color = validateTime(ary[i] , sp) ? "green" : "red"

result.push("<li>" + "<font color='" + color + "'>" + ary[i] + "</font>")

}

document.write(result.join(''))

}

function validateTime(str , spliter){

var ary = str.split(spliter)

if(ary.length != 3){

return false

}

for(var i = 0 i <ary.lengthi++){

var lstr = ary[i].replace(/^\s+|\s+$/g,'')

var num = parseInt(lstr)

if(num === false){

return false

}

if( lstr != num || num <0){

return false

}

//24小时制

if(i == 0 &&num >24){

return false

}

if(i >= 1 &&num >= 60){

return false

}

}

return true

}

</script>

</html>