JavaScript实现电视数字时钟长时间运行后时间不准问题排查
电视端JavaScript数字时钟长时间运行后时间偏差的原因
我用JavaScript实现了一个基础数字时钟用于电视端显示,运行数小时后发现时间出现30秒以上的偏差。
我的代码如下:
getTime() { const time = new Date(); const formatter = Intl.DateTimeFormat('de-AT', { hour: "2-digit", minute: "2-digit" }); return formatter.format(time); } updateClock() { this.clock = this.getTime(); }
该方法通过setInterval调用:
setInterval(() => { this.updateClock(); }, 1000);
我原本以为每次实例化新的Date对象应该能保证时间准确,完全无法理解为什么会出现偏差。
问题根源
问题并非出在JavaScript代码本身,而是电视的内部时钟存在走时失步的问题。JavaScript中的new Date()是直接读取设备的系统时间,当电视自身的系统时钟随时间逐渐偏离标准时间时,基于它实现的数字时钟自然也会显示错误的时间。
内容的提问来源于stack exchange,提问作者Johannes Reiter
相关产品推荐
相关产品推荐

