用moment js实现计数器计数

MrS*_*Scf 2 javascript momentjs

我正在尝试实现一个从00:00:00(hh:mm:ss)开始的计数器,并在跨度中每秒显示一次。我不是从小时= 00开始。它在开始时显示10:00:00。

代码如下:

var startTimestamp;
function startTimer()
{
    var startTimestamp = moment().startOf("day");
    setInterval(function() {
        startTimestamp++;
        document.getElementById('timer').innerHTML = 
            moment.unix(startTimestamp).format('hh:mm:ss');
    }, 1000);
}
Run Code Online (Sandbox Code Playgroud)

知道为什么它不起作用吗?

Vin*_*zoC 7

由于startTimestamp是力矩对象,因此您可以使用add()代替来修改其值startTimestamp++。注意add()

通过增加时间来改变原始时刻。

那么有没有理由使用moment.unix(),你可以简单地使用format()startTimestamp

最后,如format()文档所述,小写hh代表01 02 ... 11 12小时,大写HH代表00 01 ... 22 23,所以我认为您必须使用后者。

这是一个现场样本:

function startTimer()
{
    var startTimestamp = moment().startOf("day");
    setInterval(function() {
        startTimestamp.add(1, 'second');
        document.getElementById('timer').innerHTML = 
            startTimestamp.format('HH:mm:ss');
    }, 1000);
}

startTimer();
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>

<div id="timer"></div>
Run Code Online (Sandbox Code Playgroud)