【问题标题】:Making a timer in Javascript , starting from 00:00:00用Javascript制作计时器,从00:00:00开始
【发布时间】:2015-05-26 19:14:05
【问题描述】:

使用以下代码

function clock(){
    /*var message = document.getElementById("timer");
    message.innerHTML = "The time is " + Date();
    */
    var msec = 00;
    var sec = 00;
    var min = 00;

    msec += 1;
    console.log(min + ":" + sec + ":" + msec);
    if (msec == 60) {
        sec += 1;
        msec = 00;
        console.log(min + ":" + sec + ":" + msec);
        if (sec == 60) {
            sec = 00;
            min += 1;
            console.log(min + ":" + sec + ":" + msec);
            if (sec % 2 == 0) {
                alert("Pair");
            }
        }
    }
    document.getElementById("timer").innerHTML = min + ":" + sec + ":" + msec;
}

我想要做的是一个简单的计时器,它在窗口加载时启动,每毫秒递增到 60,然后重置为 0,并在秒数上加 1,当秒数达到 60 时,它会变为 0并以 1 为单位递增分钟。有点像秒表。

似乎我没有正确增加,但我不知道如何增加它。

我正在使用 setInterval 调用该函数,我不知道它是否正确:

var  timer = setInterval(clock(), 1000);

【问题讨论】:

  • 嗯,您也尝试获得毫秒。你把你的时钟功能都称为 1000 毫秒(1 秒).. 不工作 ^^ 第二个东西,1s = 1000ms / 1s != 60ms
  • msec 在 if 语句中应该是 1000,而不是 60。

标签: javascript jquery html timer


【解决方案1】:

您需要将函数引用传递给setInterval,目前您正在传递clock()的返回值undefined,因此它没有影响。

您还需要在clock() 函数之外声明msecsecmin 变量。

var timer = setInterval(clock, 1000);
var msec = 00;
var sec = 00;
var min = 00;

var timer = setInterval(clock, 1000);
var msec = 00;
var sec = 00;
var min = 00;

function clock() {
	msec += 1;
	if (msec == 60) {
		sec += 1;
		msec = 00;
		if (sec == 60) {
			sec = 00;
			min += 1;
			if (sec % 2 == 0) {
				alert("Pair");
			}
		}
	}
	document.getElementById("timer").innerHTML = min + ":" + sec + ":" + msec;
}
<div id="timer"></div>

【讨论】:

  • 哦,是的!但它仍然没有增加,没有进入下面的 if 循环
  • @BernardoPinheiro,很高兴我能帮上忙
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多