在JavaScript中检测系统时间的更改

AHO*_*HOY 9 javascript datetime

如何编写脚本来检测用户何时在JS中更改系统时间?

str*_*ger 9

没有(便携式)方法来跟踪JavaScript中的变量.此外,日期信息不在DOM中,因此您无法触发DOM事件.

您可以做的最好是setInterval定期检查(每秒?). 示例:

function timeChanged(delta) {
  // Whatever
}

setInterval(function timeChecker() {
  var oldTime = timeChecker.oldTime || new Date(),
      newTime = new Date(),
      timeDiff = newTime - oldTime;

  timeChecker.oldTime = newTime;

  if (Math.abs(timeDiff) >= 5000) { // Five second leniency
    timeChanged(timeDiff);
  }
}, 500);
Run Code Online (Sandbox Code Playgroud)

  • 当选项卡失去焦点时,像Safari或Mobile Safari这样的浏览器会显着降低setInterval频率(或将它们全部停止),因此请注意此方法很容易产生错误警报. (5认同)