原生js 秒表实现代码_时间日期

html代码:

复制代码 代码如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<meta charset="gb2312">
<head>
<style type="text/css">
#container {
margin:0 auto;
margin-top:10%;
width:200px;
}
#timer {
border:red double 1px;
width:180px;
height:76px;
line-height:76px;
font-size:32pt;
color:green;
}
input {
width:87px;
}
</style>
</head>
<body onload="init()">
<div id="container">
<div id="timer"></div>
<input type="button" id="ctrl" />
<input type="reset" onclick="init()" />
</div>
</body>
</html>

js代码:

复制代码 代码如下:

/*
*@author:hyjiacan
*date:15:57 2010-9-5
*name:timer
*/
var ctrl = document.getElementById("ctrl"); //控制按钮对象
var timer = document.getElementById("timer"); //时间显示对象
var hour, minute, second; //时,分 ,钞
var t; //setTimeout方法
//初始化显示和按钮
var init = function(){
timer.innerHTML = "00:00:00"; //由于FF不支持使用innerText,故采用innerHTML
hour = minute = second = 0; //初始化显示
ctrl.setAttribute("value", "开始"); //初始化控制按钮文字
ctrl.setAttribute("onclick", "startit()"); //初始化控制按钮事件
clearTimeout(t);
}
//开始计时
function startit(){
t = setTimeout("startit()", 1000); //每隔1秒(1000毫秒)递归调用一次
second++;
if(second>=60){ //判断秒是否到60, 是则进位
second = 0;
minute++;
}
if(minute>=60){ //判断分是否到60, 是则进位
minute = 0;
hour++;
}
timer.innerHTML = j(hour) + ":" + j(minute) + ":" + j(second) ; //更新显示
//更改按钮状态
ctrl.setAttribute("value", "暂停/停止"); //更改按钮文字
ctrl.setAttribute("onclick", "pause()"); //更改按钮触发事件
}
//显示数字填补,即当显示的值为0-9时,在前面填补0;如:1:0:4, 则填补成为 01:00:04
var j = function(arg){
return arg>=10 ? arg : "0" + arg;
}
//暂停计时
var pause = function(){
clearTimeout(t);
ctrl.setAttribute("onclick", "startit()");
ctrl.setAttribute("value", "继续");
}

使用setTimeout递归处理。 在这之中,有一个很重要的问题——延迟,这样的做法和系统CPU资源有很大关系,而且函数的调用也要耗费时间,最终就导致计数的误差越来越大。

还有另一个方法:

在按下开始按钮的时候,记录下按下的时间(毫秒),然后每隔1秒读取一次当前时间,再用当前时间减去按下时记下的时间,算出经过了的时间。

时间: 2024-07-30 14:21:11

原生js 秒表实现代码_时间日期的相关文章

Js 获取当前日期时间及其它操作实现代码_时间日期

myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数) myDate.getHours();

JavaScript 判断日期格式是否正确的实现代码_时间日期

转载者最起码注明作者和出处!http://www.cnblogs.com/GuominQiu 复制代码 代码如下: //--------------------------------------------------------------------------- //判断日期格式是否正确 //返回值是错误信息, 无错误信息即表示合法日期字符串 function isDateString(strDate){ var strSeparator = "-"; //日期分隔符 var

JS中处理与当前时间间隔的函数代码_时间日期

复制代码 代码如下: <script type="text/javascript"> //计算一个日期字符串与当前日期相差值 //输入的参数形式如:2012-12-12 12:12:12 //返回相差值的字符串 function GetDateDiff(datetime) { // 可以将2012 - 12 - 12 12 : 12 : 12字符串转为JS中的时期对象, // 因为默认情况下只把持2000 / 05 / 05这样形式的字符串转为时间对象 var dateBe

完整显示当前日期和时间的JS代码_时间日期

代码演示效果为"2007年2月25日星期日正午12:42:48". 使用方法:将下面的JS代码放到你想要显示的页面中(支持HTML页面),然后在你想要显示时间的位置插入下面的代码即可 <div id="Clock" align="center" style="font-size: 12px; color:#000000"></div> JS代码如下: <script> function ti

js中格式化日期时间型数据函数代码_时间日期

例如: 现有一字符串为: var dt="2010-1-1 12:20:20"; 第一步:将其转换成日期时间型数据 复制代码 代码如下: var newDt=new Date(dt.replace("-","/")); 第二步:格式化数据成"yyyy-MM-dd" (1)扩展Date 复制代码 代码如下: Date.prototype.format = function(format){ var o = { "M+

js 判断所选时间(或者当前时间)是否在某一时间段的实现代码_时间日期

核心代码: var time_range = function (beginTime, endTime, nowTime) { var strb = beginTime.split (":"); if (strb.length != 2) { return false; } var stre = endTime.split (":"); if (stre.length != 2) { return false; } var strn = nowTime.split

JS 显示当前日期与时间的代码_时间日期

JS 显示当前日期 复制代码 代码如下: <script language="Javascript"> var datelocalweek=new Array("星期日", "星期一", "星期二","星期三","星期四", "星期五","星期六"); var datelocalnow=new Date(); var datelocal

js计数器代码_时间日期

复制代码 代码如下: <script Language="javascript">  var seconds = 10;//记数时间  var handle;//事件柄  //开始记数器  function startTimer() {   handle = setInterval("timer()",1000);  }  //结束记数器  function stopTimer() {   clearInterval(handle);   seconds

JS 时间显示效果代码_时间日期

复制代码 代码如下: function settime() { var myyear,mymonth,myweek,myday,mytime,mymin,myhour,mysec; var mydate=new Date(); myyear=mydate.getFullYear(); mymonth=mydate.getMonth(); myday=mydate.getDate(); myhour=mydate.getHours(); mymin=mydate.getMinutes(); mys