1

我无法使用时刻 js 动态查看时间更新。它显示了正确的时间,但我必须刷新浏览器才能获得时间更新。我希望它能够实时更新。就像 momentjs.com 主页一样。

我试过使用 setInterval 和 setTimeout 但由于某种原因,我得到了以下甚至没有更新的数字。

到目前为止,这是我在代码方面所拥有的。就时刻而言,这很简单,我想要的只是秒数……

update = ->
  time = moment().format('hh:mm:ss a')

clock = setInterval update, 1000
console.log(clock) //output: 53296

任何想法都非常感谢。

4

2 回答 2

2

您应该将输出放在更新方法中,一切都会按预期工作。方法 setInterval 不会返回重复调用方法的结果,而是一个标识符,可以与 clearInterval 一起使用以停止执行。

只是一个小的工作示例,每秒钟打印一次时间并在 10 秒后停止:

update = ->
    console.log(moment().format('hh:mm:ss a'))
x = setInterval update, 1000;
setTimeout (-> clearInterval(x)), 10000

如果您想将该时间用作某些 DOM-Element 的内容,您可以在更新函数中使用以下代码(假设您有一个 id 为“time”的元素(例如 div)):

查询

$("#time").text(moment().format('hh:mm:ss a')) 

纯JS:

document.getElementById("time").firstChild.data = moment().format('hh:mm:ss a')
于 2012-12-18T01:59:40.640 回答
0

尝试这个。如果你不必使用 meomentJS。 https://github.com/furkankaynak/countdown

于 2013-10-10T12:02:29.643 回答