如何在特定时区使用moment.JS并实时显示

Jei*_*man 8 javascript timer momentjs

如何将Moment.JS库用于国际时区并实时显示?

这是我目前在索引页面中的内容.

码:

<!DOCTYPE html>
<html>
<head>
<script src="moment.js"></script>
<script src="moment-timezone.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
    moment().tz("America/Los_Angeles").format();
    document.getElementById("time").firstChild.data = moment().format('hh:mm:ss a')
</script>
</head>
<body>
    <span id="time">s</span>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我第一次使用MomentJS,我不知道我是否正确实现了它并实时显示它而不经常刷新页面.

Mat*_*int 7

您缺少实际的区域数据.转到moment-timezone数据构建器并包含您关注的区域.将其放入另一个名为moment-timezone-data.js并包含它的文件中,或将其内联到您现有的脚本中.请参阅这些文档.

要实时更新它,您需要定期更新元素.

此外,在您的示例代码中,第一次使用时区调用时刻时,您将丢弃响应.第二个电话,你没有使用时区.而且你不需要jQuery.

把它们放在一起:

function showTheTime() {
    var s = moment().tz("America/Los_Angeles").format('hh:mm:ss a');    
    document.getElementById("time").innerHTML = s;
}

showTheTime(); // for the first load
setInterval(showTheTime, 250); // update it periodically
Run Code Online (Sandbox Code Playgroud)

您可能认为将间隔设置为1000毫秒就可以了,但您可能会发现它在视觉上不能顺利打勾.发生这种情况是因为间隔计时器可能与实际时钟不对齐.最好每秒更新多次.