gpt4 book ai didi

Javascript 时钟 - 服务器时间

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:59:47 28 4
gpt4 key购买 nike

我需要在时钟上显示服务器时间。以下是我目前拥有的代码。我通过 Ajax 调用获得服务器时间。问题是,如果用户更改它的本地/计算机时钟,它也会更新脚本的时钟,这是不对的——它应该继续而不改变,我被卡住了。我试过在 setTimeout 中传递 serverTime,所以它每次都被用作引用,但运气不好。

var serverTime  = 1490856278000;
var localTime = +Date.now();
var timeDiff = serverTime - localTime;
var realTime;
var date;
var hours;
var minutes;
var seconds;
setInterval(function () {
realTime = +Date.now() + timeDiff;
date = new Date(realTime);
hours = date.getHours();
minutes = date.getMinutes();
seconds = date.getSeconds();
document.getElementById('clock').innerHTML = hours + ':' + minutes + ':' + seconds;
}, 1000);
<div id="clock"></div>

最佳答案

您应该能够将每个 realTimesetInterval 中的最后一个进行比较。如果差异远不是应该的 1000 毫秒,请执行 ajax 调用以再次查询服务器时间并更新 timeDiff


您也可以尝试使用 performance.now而不是 Date.now。更高的分辨率是不必要的,而且可能很昂贵,但 MDN 指出

unlike Date.now(), the values returned by Performance.now() always increase at a constant rate, independent of the system clock (which might be adjusted manually or skewed by software like NTP)

关于Javascript 时钟 - 服务器时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43117297/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com