我有一个 UI 需要一直更新 UTC 时间才能显示给用户。
我原来的代码是这样的:
(function () {
$http.get('api/getdate').success(function (data) {
current = new Date(data.res + new Date().getTimezoneOffset()*60*1000);
updateDateTimer = setInterval(function(){
$http.get('api/getdate').success(function (data) {
current = new Date(data.res + new Date().getTimezoneOffset()*60*1000);
});
}, 30000);
});
})();
data.res 具有我需要的正确时间戳。这种方式工作正常,因为我可以信任我的服务器发送回 UI 的数据。那么我需要用户提供的唯一数据是它与 UTC 的偏移量,因此我确信将显示的日期是正确的。
我的问题是每 30 秒就会调用一次服务器,如果我希望我的时钟更频繁地更改,那么这会变得非常讨厌。
我想过只调用一次服务器,然后在创建的 Date 对象中添加 1 秒,但这是非常不准确的,几分钟后你可以看到时钟不再与真实的时钟同步时间。
第一次之后是否有可能不再对服务器进行调用?问题是我无法确保客户端不会更改其本地时钟。看来我需要一些如何处理使用第一个 .get 调用创建的 Date 对象,但是如何处理呢?
谢谢