2016-01-02 20 views
2

我有一个简单的setInterval设置像这样:如何格式化的setInterval方法的经过时间的JavaScript

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

它执行此功能:

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

HTML是这个非常简单的。它只显示为0s并增加。

我遇到的问题是,我似乎无法让它以这样的格式显示00:00:00

任何帮助非常感谢!

+1

这对于增加时间看起来很好。麻烦在于你用来在HTML元素中显示时间的代码。你能分享这个代码吗? – RobertAKARobin

+0

RobertAKARobin我编辑它。 – Geroy290

+0

你看过吗? http://stackoverflow.com/a/1322798/2053389 – RobertAKARobin

回答

1

这给了一枪,使用JS内置的Date类,从here采取:

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

老兄你非常感谢。工作完美!感谢所有的帮助! – Geroy290

2

创建计时器元素

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

风格

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

更新计时器

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);