每1秒javascript获取时间

时间:2017-08-11 01:57:10

标签: javascript date setinterval

我创建了一个每1秒执行一次的脚本,并在这样的范围内输出当前的小时,分​​钟和秒:

setInterval(()=>{
    let date = new Date();
    let time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
    document.getElementById('foo').innerText = time;
}, 1000);
Time :<span id ='foo'>00:00:00</span>

正如您每1秒钟所见,我正在创建一个新的Date对象。 有没有更好的方法来实现这一点,而不必每1秒重新创建一个Date对象?

1 个答案:

答案 0 :(得分:3)

您只需增加现有Date对象的秒数即可:

let date = new Date();

setInterval(() => {
    date.setSeconds(date.getSeconds() + 1);

    let time = `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
    document.getElementById('foo').innerText = time;
}, 1000);

然而,问题是

  1. 这实际上会让你获得多少性能;和
  2. 执行间隔方法的时间有多精确,以及在计算日期和实际日期之间会有多少漂移。您可能希望再次重新同步,例如每小时左右。