當(dāng)前位置:軟件學(xué)堂 > 資訊首頁(yè) > 網(wǎng)絡(luò)編程 > 編程其他 > JS實(shí)現(xiàn)精確到千分之一秒

JS實(shí)現(xiàn)精確到千分之一秒

2012/11/5 19:12:30作者:佚名來源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱】

JS實(shí)現(xiàn)精確到千分之一秒

【實(shí)例描述】

JavaScript中的日期對(duì)象只能顯示到秒:本例學(xué)習(xí)如何顯示更精確的時(shí)間,類似于體育運(yùn)動(dòng)中常用的跑表。

【實(shí)例代碼】

<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>標(biāo)題頁(yè)-學(xué)無(wú)憂(www.wangbatian.cn)</title> <SCRIPT LANGUAGE="JavaScript"> var ms = 0; var state = 0; function startstop() {     if (state == 0) {                     //開始走秒         state = 1;         then = new Date();               //獲取當(dāng)前時(shí)間         then.setTime(then.getTime() - ms);     }     else {                               //結(jié)束走秒         state = 0;         now = new Date();         ms = now.getTime() - then.getTime();         document.form1.time.value = ms;    } } function timeReset()                     //重置時(shí)間的方法 {     state = 0;     ms = 0;     document.form1.time.value = ms; } function display()                         //開始顯示時(shí)間 {     setTimeout("display();", 1);          //設(shè)置定時(shí)器     if (state == 1)  {now = new Date();    //獲取當(dāng)前的新時(shí)間     ms = now.getTime() - then.getTime();   //通過時(shí)間差計(jì)算豪秒     document.form1.time.value = ms;        //顯示毫秒     } } </SCRIPT> </head> <body onLoad="display()">     <form name="form1">         本例的時(shí)間可以準(zhǔn)確到千分之一秒<br>         計(jì)時(shí):         <INPUT TYPE="text" Name="time" /><br />         <INPUT TYPE="BUTTON" Name="btnSet" VALUE="開始/停止" onClick="startstop()" />         <INPUT TYPE="BUTTON" NAME="reset" VALUE="重置" onClick="timeReset()" />     </form> </body> </html>

【運(yùn)行效果】

 精確到千分之一秒運(yùn)行效果

【難點(diǎn)剖析】

本例的重點(diǎn)是毫秒的計(jì)算。當(dāng)用戶單擊“開始/停止”按鈕時(shí),首先判斷現(xiàn)在是否有時(shí)問在顯示,有則表示要停止顯示時(shí)間,否則開始顯示時(shí)間。開始計(jì)時(shí)時(shí),首先要獲取當(dāng)前時(shí)間,然后每隔一毫秒修改一下當(dāng)前時(shí)間。最終顯示的內(nèi)容是當(dāng)前時(shí)間減去初次顯示時(shí)的時(shí)間,結(jié)果為毫秒值。


【源碼下載】

為了JS代碼的準(zhǔn)確性,請(qǐng)點(diǎn)擊:精確到千分之一秒 進(jìn)行本實(shí)例源碼下載 

標(biāo)簽: JS實(shí)現(xiàn)  時(shí)間