下分钟开始的开始时间间隔

时间:2019-03-19 19:26:10

标签: javascript reactjs time setinterval

在我正在处理的议程/日历应用程序中,我显示一行以指示当前时间。我想每分钟更新这条线的位置。

如果我在日历组件确实要安装或将要安装时启动setInterval函数,则发生变化是它从第59秒(或不是第1秒)开始,并且时间将始终与设备正在显示(计算机,智能手机等)。

但是我希望两者都匹配。所以我想知道是否有可能在新的分钟开始时开始间隔,或者是否还有另一种获取时间更新的方法。

编辑:当前代码

componentDidMount() {
    setInterval(() => {
        this.setState({ currentTime: new Date() })
    }, 60 * 1000);
}

2 个答案:

答案 0 :(得分:1)

您可以通过计算直到下一分钟的秒数,并对差异进行超时来达到相当接近的水平。

(function showTime(){
  console.log('update time');
  var time = document.getElementById('time');
  var now = new Date();
  
  time.innerHTML = `${now.getHours()}:${now.getMinutes()}`;
  setTimeout(showTime, (60 - now.getSeconds()) * 1000);
})();
<div id="time"></div>

答案 1 :(得分:0)

使用SetTimeout调用一个函数,该函数可修复每次迭代的任何偏差并重新调用setTimout重新启动。

@foreach (string paygroup in Model.Paygroups)
{ // build your table }