最近Q群里面有人发了一张图片,是用JS代码实现动态显示时间,格式如下:
星期一,十一月 02 2009|10:31:45 AM|@147
最后那个@147引起了疑问,因为以前从来没有见到过这种表示方法。
看到@147,第一反映是这个数不大,是否表示使用者所在的时区?
但是通过聊天发现,这是一个可变化的数字。
所以该数字不能是时区,理论上时区是不可变的。
之后有人给出了代码片段
InternetTime = Math.round((Time24H.getHours()*60+Time24H.getMinutes()) / 1.44);
据此代码片段,在GOOGLE上搜索到完整的JS代码
查阅该JS代码,发现这样一条有用的信息
if (InternetTime < 10)
InternetTime = '00'+InternetTime;
else if (InternetTime < 100) InternetTime = '0'+InternetTime;
可以判断出@后面跟的是一个3位整数,因为在小于100的时候,程序会给自动补0
三位小数,第一反映是毫秒(看F1赛车比赛的时候,貌似毫秒是用3位小数表示的)
但在紧接着的聊天中发现,该数值变化幅度很慢,约分钟才变化一次。
由此看来应该不是毫秒,毫秒变化频率不应该这么慢。
通过命名方式,在GOOGLE上查询InternetTime
得到:
互联网时间(Internet Time)
众所周知,两个位于不同经度的国家之间一定存在时差。如何才能消除时差呢?2003年6月,瑞士知名手表制造商SWATCH(斯沃奇)与美国麻省理工学院合作,共同研究出一种世界共通的“互联网时间”。如果想要加入到使用互联网时间的行列,用户只需到SWATCH的官方网站上,免费下载安装一套软件,你的电脑上就会显示这种计时机制。此后,不论你身处世界任何一个角落,电脑上都会拥有相同的互联网时间,与任何国家的互联网用户都不再有时差。
如果真是互联网时间的话,还需要一个逆推验证。
并且程序中的/1.44实在是想不明白存在的理由。
继续查Internet Time的定义
得到:
所谓互联网时间,就是把一天划分为1000点(beat),每一点相当于传统计时单位的1分26.4秒。
得到这条信息后,做一个简单的算术 (60+26.4)/60 正好等于1.44
应该是互联网时间没错。
在此记录下解决问题的思路,希望能对日后解决问题有所帮助。