使用setInterval对时钟进行排序

Sort of Clock using setInterval

本文关键字:排序 时钟 setInterval 使用      更新时间:2023-09-26

我是一名多媒体学生,一直在学习Javascript。

今天早上,我萌生了制作一个钟的想法。是的,我知道它已经在这个论坛上全天候完成了,但不是我想要的,

我想要的东西:加载页面时,时钟从00:00:00开始(不是当前时间)。然后每一秒都会经过等

到目前为止我得到的代码:

<!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8" />
        <title>Teller</title>
        <link rel="stylesheet" href="style.css">
        <script>
            var seconde;
            var minute;
            var hour;
            function ClockLoader() {
                seconde = setInterval(ClockTicker, 1000);
                minute = setInterval(ClockTicker, 60000);
                hour = setInterval(ClockTicker, 3600000);
            }
            function ClockTicker() {
                var nummer = document.getElementById("secondeClock").innerHTML;
                var nieuwNummer = document.getElementById("secondeClock").innerHTML + 1;
                document.getElementById("secondeClock").innerHTML = nummer.replace(nieuwNummer, "");
            }
            function stopTheClock() {
              clearInterval(seconde);
            }
            function startTheClock() {
                seconde = setInterval(ClockTicker, 1000);
                minuut = setInterval(ClockTicker, 60000);
                uur = setInterval(ClockTicker, 3600000);
            }
        </script>
    </head>
    <body onload="ClockLoader(); ClockTicker();">
        <div class="clock" id="hourClock">0</div>
        <div class="clock" id="minuteClock">0</div>
        <div class="clock" id="secondeClock">0</div>
        <button onclick="startTheClock();">Start</button>
        <br>
        <button onclick="stopTheClock();">Stop</button>
    </body>
</html>

我希望我的要求不会占用你太多时间,提前谢谢!

我不知道你在ClockTicker函数中到底想做什么,但它没有做任何有用的事情。也许可以试试这样的东西:

var nummer = document.getElementById("secondeClock").innerHTML;
var nieuwNummer = ++nummer;
document.getElementById("secondeClock").innerHTML = nieuwNummer;

为了配合Alex K的注释,一个setInterval就可以了。

var sec=0,min=0,hour=0;
window.onload=function start() {
    setInterval(test,1000);
}
function test() {
    sec++;
    if(sec==60){
        sec=0;
        min++;
    }
    if(min==60){
        min=0;
        hour++
    }

}

由于setInterval(test,1000)是以毫秒为单位设置的,并且1000毫秒=1秒,所以每次调用测试函数时我们只添加一个。当60秒结束时,我们将分钟设置为1,并重置第二个计数器。当分钟达到60时,我们将小时设置为1,依此类推。如果你打算制作一个24小时或12小时的时钟,我建议你仍然使用这个计数器,但也要使用这个:

var d = new Date(); 
initialhour=d.getHours(); 
initialminute=d.getMinutes(); 
initialsecond=d.getSeconds();

然后使用setInterval来向上修改这些变量。也许使用另一个变量,这样上面的内容只使用一次?希望这能有所帮助!

FIX:定义start()函数之外的变量。