【实例名称】
JS实现精确到千分之一秒
【实例描述】
JavaScript中的日期对象只能显示到秒:本例学习如何显示更精确的时间,类似于体育运动中常用的跑表。
【实例代码】
<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>标题页-本站(www.xue51.com)</title> <SCRIPT LANGUAGE="JavaScript"> var ms = 0; var state = 0; function startstop() { if (state == 0) { //开始走秒 state = 1; then = new Date(); //获取当前时间 then.setTime(then.getTime() - ms); } else { //结束走秒 state = 0; now = new Date(); ms = now.getTime() - then.getTime(); document.form1.time.value = ms; } } function timeReset() //重置时间的方法 { state = 0; ms = 0; document.form1.time.value = ms; } function display() //开始显示时间 { setTimeout("display();", 1); //设置定时器 if (state == 1) {now = new Date(); //获取当前的新时间 ms = now.getTime() - then.getTime(); //通过时间差计算豪秒 document.form1.time.value = ms; //显示毫秒 } } </SCRIPT> </head> <body onLoad="display()"> <form name="form1"> 本例的时间可以准确到千分之一秒<br> 计时: <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>
【运行效果】
【难点剖析】
本例的重点是毫秒的计算。当用户单击“开始/停止”按钮时,首先判断现在是否有时问在显示,有则表示要停止显示时间,否则开始显示时间。开始计时时,首先要获取当前时间,然后每隔一毫秒修改一下当前时间。最终显示的内容是当前时间减去初次显示时的时间,结果为毫秒值。
【源码下载】
为了JS代码的准确性,请点击:精确到千分之一秒 进行本实例源码下载
……