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)
知道为什么它不起作用吗?
由于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)