【问题标题】:how to calcuate seconds left in the current minute of the time如何计算当前时间中剩余的秒数
【发布时间】:2013-12-09 08:39:18
【问题描述】:

当时间从 12:01 更改为 12:02 时,我想在 UI 中更新时钟。

我可以每 60 秒执行一次 setInterval,但开始可能不在新分钟的第一秒。如何确保它从第一秒开始?

我想我需要找出当前分钟还剩下多少秒,然后执行一个 setTimeout,当秒数过去时触发 setInterval。

var secondsLeft = ?; //calculate seconds left in this minute

setTimeout(function(){
    setInterval(function(){
        //update clock
    }, 1000 * 60);
}, secondsLeft);

如果moment.js 让事情变得更容易,我没问题。

【问题讨论】:

  • 新建一个Date对象,看看它的秒数。
  • 您确实意识到javascript日期和时间不是很准确,并且基于用户操作系统中的设置,因此可能因用户而异?
  • 是的,这很好。它不必是原子钟的准确性。我只是不想让时间在 30 秒中途改变。

标签: javascript


【解决方案1】:

试试这个:secondsLeft = 60 - new Date().getSeconds()

【讨论】:

    【解决方案2】:

    我会存储旧值,使用 requestAnimationFrame 来查看浏览器是否准备好渲染,并在渲染时检查分钟是否与之前的渲染有所不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 1970-01-01
      相关资源
      最近更新 更多