【问题标题】:Coffeescript: Dynamically update time with moment js with coffeescriptCoffeescript:使用moment js和coffeescript动态更新时间
【发布时间】:2012-12-18 01:00:28
【问题描述】:

我在使用 moment js 动态查看时间更新时遇到问题。它显示了正确的时间,但我必须刷新浏览器才能获得时间更新。我希望它能够实时更新。喜欢 momentjs.com 主页。

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

这是我到目前为止的代码方面的内容。就时间而言非常简单,我想要的只是数秒......

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

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

非常感谢任何想法。

【问题讨论】:

    标签: javascript coffeescript momentjs


    【解决方案1】:

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

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

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

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

    JQuery

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

    纯 JS:

    document.getElementById("time").firstChild.data = moment().format('hh:mm:ss a')
    

    【讨论】:

    • 非常感谢,但我无法达到预期的效果。我希望我的时间像在这个网站上一样更新momentjs.com
    • 我按照您的建议做了,但这次它在控制台中创建了新的更新时间行,我什至无法将其打印到 DOM。 ://
    • 这取决于您的应用程序。我将在我的答案中添加一个示例。
    • 非常感谢!我发现了我的问题。感谢您抽出宝贵的时间来帮助我..
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-07-29
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      相关资源
      最近更新 更多