简体   繁体   English

如何格式化setInterval方法JavaScript的运行时间

[英]How to format the elapsed time of setInterval method JavaScript

I have a simple setInterval setup like so: 我有一个简单的setInterval设置,如下所示:

var time = 0;
function a(){
    window.setInterval(timer, 1000);
}

Which executes this function: 执行此功能:

function timer() {
    time +=1;
    document.getElementById("a").innerHTML = time + "s"
}

HTML is very simple for this. HTML非常简单。 It just displays as 0s and increases. 它只显示为0s并增加。

The problem I am having is that I can't seem to get it to display in a format like this 00:00:00 . 我遇到的问题是我似乎无法以00:00:00这样的格式显示它。

Any help is much appreciated! 任何帮助深表感谢!

Give this a shot, using JS's built-in Date class, taken from here : 使用JS的内置Date类,从这里取一个镜头:

function timer() {
  var date = new Date(null);
  date.setSeconds(time++);
  document.getElementById("a").innerHTML = date.toISOString().substr(11, 8);
}

Create timer element 创建计时器元素

<div id="timer">
    <span class="hours"></span>
    <span class="minutes"></span>
    <span class="seconds"></span>
</div>

Style 样式

#timer > .hours:after,  #timer > .minutes:after{
    content: ":";
}

Update timer 更新计时器

var Timer = function(element){
    var secondsElement = element.getElementsByClassName("seconds")[0],
        minutesElement = element.getElementsByClassName("minutes")[0],
        hoursElement   = element.getElementsByClassName("hours")[0],
        show = function(num){
            return ("0" + num).slice(-2);
        };

    return {
        update: function(){
            var now = new Date();
            secondsElement.innerHTML = show(now.getSeconds());
            minutesElement.innerHTML = show(now.getMinutes());
            hoursElement.innerHTML   = show(now.getHours());
        }
    };
};

var timer = new Timer(document.getElementById("timer"));

setInterval(function(){
    timer.update();
}, 500);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM