最近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

应该是互联网时间没错。

 

在此记录下解决问题的思路,希望能对日后解决问题有所帮助。

posted on 2009-11-04 09:13  C.Gavin  阅读(212)  评论(0编辑  收藏  举报