我应该如何更新时间?新日期或 setInterval?

How should I update a time? new Date or setInverval?

我每秒更新一次时钟,时间来自 new Date 对象,但我想知道是简单地添加初始时间 setInterval 还是创建更好每秒 new Date 并使用该对象更新时间。

它们都有效,但我想知道它是否负责每秒创建一个新对象,因为我确信 setInterval() 方法会使用相当少的资源,因为执行了三个函数有时间的时候。 (.getHours(), .getMinutes(), .getSeconds())

我可以看到让它使用 new Date 对象的优势,因为我假设它会在系统时间更改(更改时区或夏令时调整)时更改。

那么使用 setInverval() 效率更高还是每次使用与创建 new Date 对象一样多的资源?

setInterval(function myFunc(){}, 1000) 不保证 myFunc 每秒都会被调用。事实上,间隔可以有很大的不同。例如,在Chrome中,如果你改变标签,间隔会减慢很多,直到你return到初始标签。
所以继续使用 new Date().
参见 http://javascript.info/tutorial/settimeout-setinterval

使用它,它会对您有所帮助,为了在您的页面加载后仅显示一次时间,您只需使用新的 Date() 和 getHours()、getMinutes、getSeconds 函数即可。为了在不刷新页面的情况下显示更新时间,您需要同时使用 setInterval() 和新的 date() 功能 together.you 需要在设置的时间间隔内使用新的 date() 因为,如果您添加任何警报在你的代码中,它不会暂停你的时间更新。

function pad(str, max) {

  return ((str.length < max) ? pad("0" + str, max) : str);
}
var d;
setInterval(function myFunc() {
  d = new Date();
  document.getElementById("date").innerText = (pad(d.getHours().toString(), 2) + ":" + pad(d.getMinutes().toString(), 2) + ":" + pad(d.getSeconds().toString(), 2));
}, 1000);
<div id="date"></div>