js将string类型转为时间类型:日期不需要,只要时分秒,限制每天的10点30分来减去当前的时间。

//当前时间。
var a,b,c;
var dateTime = new Date();
var hh = dateTime.getHours();
var mm = dateTime.getMinutes();
var ss = dateTime.getSeconds();
var dtime = hh + ":" + (mm < 10 ? "0" + mm : mm) + ":" + (ss < 10 ? "0" + ss : ss);
document.getElementById("time").value = dtime;
var fixtime = '10:30:00';
//截取
alert(dtime); // 结果显示为13:56:30
a = dtime.replace(/:/g, "");
b = fixtime.replace(/:/g, ""); // b是固定的时间10:30:00
alert(a); // 结果显示为135630
现在我想要得到这样的效果,如果a的时间大于b的时间,则用a-b,结果为03:26:30,如果a时间小于b时间则用b-a,请问高手怎么实现?

<html>
<head>
<script language="JavaScript">
var a,b,c;
var dateTime = new Date();
var fixTime = new Date();
fixTime.setHours(10);
fixTime.setMinutes(30);
fixTime.setSeconds(0);
var difTime=dateTime.getTime()>fixTime.getTime()?dateTime.getTime()-fixTime.getTime():fixTime.getTime()-dateTime.getTime();
var t=toTime(difTime);
alert(t);
function toTime(milliSecond){
var h=parseInt(milliSecond/(60*60*1000));
var temp=milliSecond%(60*60*1000);
var m=parseInt(temp/(60*1000));
var s=parseInt((temp%(60*1000))/1000);
return (h<10?"0"+h:h)+":"+(m<10?"0"+m:m)+":"+(s<10?"0"+s:s);
}
</script>
</head>
<body>
</body>
</html>
你看看,我测试是没有问题的e/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-05
var result;
if(Date.parse(a) > Date.parse(b)){
result = (Date.parse(a)-Date.parse(b).toDateString();
}else{
result = (Date.parse(b)-Date.parse(a).toDateString();

}追问

这种方法行不通....

第2个回答  2012-12-05
var result = Math.abs(a - b);
难道不是这样吗?追问

Math.abs 会根据时间的格式想减吗?

追答

你说的不清楚,进位,格式什么的,你都讲不清楚?

追问

既然说了是时间差,肯定要根据时间进位计算嘛,能不能帮我弄弄?

追答

var now = new Date();
var ten = new Date(now.getFullYear() + "/" + (now.getMonth() + 1) + "/" + now.getDate() + " 10:30:00");
var seconds = parseInt(Math.abs((ten - now)/1000));
var h,m,s;
h = parseInt(seconds/3600) < 10 ? ("0"+ parseInt(seconds /3600)):parseInt(seconds/3600);
m = parseInt(seconds/60)%60 < 10 ? ("0" + parseInt(seconds/60)%60):(parseInt(seconds/60)%60);
s = parseInt(seconds%60) < 10 ? ("0" + parseInt(seconds%60)):parseInt(seconds%60);
var result = h + ":" + m + ":" + s;
alert(result)

相似回答