JavaScript編寫了一個計時器,javascript計時器
初學JavaScript,用JavaScript編寫了一個計時器。
設計思想:
1、藉助於Date()對象,來不斷擷取時間點;
2、然後用兩次時間點的毫秒數相減,算出時間差;
3、累加時間差,這樣就能把計時精確。
ps:
沒在網上看到有這種方法,一般都是用的setinterval,程式設計語言內建的延時,時間控制都有比較大的誤差;
所以用系統時間相減的方法控制精準,並以本例顯示三位毫秒的數字印證準確度,設定的是100毫秒,而Js本身會有誤差;
這個程式可以避免不精確的問題。
本例互相交流用,並迫切希望得到的讀者的想法及建議。
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script type="text/javascript">var tFlag = 0;var tPass = 0;function timer(id) {if (tFlag != 0) {var tNew = new Date().getTime();tPass = tPass + (tNew - tFlag);tFlag = tNew;} else {tFlag = new Date().getTime();}setTimeout("timer('" + id + "')", 100);var ml = tPass % 1000;var sc = Math.floor((tPass / 1000) % 60);var mi = Math.floor((tPass / 1000 / 60) % 60);var hr = Math.floor((tPass / 1000 / 60 / 60) % 24);var dy = Math.floor(tPass / 1000 / 60 / 60 / 24);var info = dy + "天" + hr + "時" + mi + "分" + sc + "秒" + ml + "毫秒";document.getElementById(id).innerHTML = info;}</script></head><body><button type="button" onclick="timer('ptime')">開始計時</button><p id="ptime"></p></body></html>
一個用javascript實現的計時器
<html>
<body>
<script language="javascript">
var timeout=-1;
var timer;
function cal(){
if(startButton.value=="開始"){
startButton.value="暫停";
timer=setInterval("timeout++;textField.value='已經過了: '+(timeout/600)+' 分鐘.';",100)
}
else{
clearInterval(timer);
startButton.value="開始";
}
}
function reset(){
startButton.value="開始";
textField.value=" ";
if(timer!=null){
timeout=-1;
clearInterval(timer);
}
}
</script>
<input type="text" size=50 name="textField">
<input type="submit" size=10 name="startButton" value="開始" onclick="cal();">
<input type="submit" size=10 name="resetButton" value="重設" onclick="reset();">
</body>
</html>
用javascript寫個跑表計時器
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/...al.dtd">
<html xmlns="www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=gb2312" http-equiv="content-type" />
<title>Untitled Page</title>
</head>
<body>
<center>
<input id="showtime" type="text" disabled="disabled" value="00:00:00:000" /><br /><input id="pause" type="button" value="start" /><input id="reset" type="button" value="reset" />
</center>
</body>
</html>
<script type="text/javascript">
var tag=false;
var t;
var thisdate = new Date('0','0','0','0','0','0','0');
document.getElementById("reset").onclick=function(){
clearTimeout(t);
tag=false;
document.getElementById("pause").value="start";
document.getElementById("showtime").value="00:00:00:000";
......餘下全文>>