我正在尝试在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);
}
知道为什么它不起作用?
答案 0 :(得分:5)
由于startTimestamp
是时刻对象,您可以使用add()
修改其值,而不是使用startTimestamp++
。请注意add()
:
通过增加时间来改变原始时刻。
然后没有理由使用moment.unix()
,您可以在startTimestamp
上使用format()
。
最后,正如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();

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
<div id="timer"></div>
&#13;