JavaScript編寫了一個計時器,javascript計時器

來源:互聯網
上載者:User

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";
......餘下全文>>
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.