Chen Yangjian's Blog

Carpe diem - Seize the day

More on Calendars

| Comments

the Time Tag in HTML5.

人类是这世界上最大的悖论。毛主席教导我们,要辨证地认识自己。所以,做春梦可以被判反革命流氓罪,携数亿公款潜逃可以政治保护。个体已经如此,由这帮个体组成的群落就更甚。于是当我们讨论到历法的时候,讨论到 HTML5 里头原可以成为银弹成为救世主的 <time>标签的时候,标准的实现者们纷纷走上街头。体力不支的,则高呼,我受不了啦,而后或切腹或上吊。

很久以前,UNIX 机器里头的实现方式,是记录一个以秒为单位的自增数值,需要显示人类可以读的时间了,就算几下再读出来。数字不能太大,按照曾经用两位数值表示年份而后再根据这个吆喝着Y2K骗经费的懒惰科学家们认为,从二十世纪七十年代开始,足够了。所以才会出现人们庆贺 1234567890:

On February 13, 2009 at exactly 23:31:30 (UTC), the decimal representation of Unix time was equal to ‘1234567890’. Parties and other celebrations were held around the world, among various technical subcultures, to celebrate the 1234567890 day.

那么,1970 年以前的怎么办?有好心人实现了个 date 命令,很伟大的注意到了 Gregorian Calendar 正式使用时,那消失的 14天。然而,当你把这台机器抬到俄罗斯去用的时候,恐怕又会遗笑大方。因为阿毛反应太慢,在 1918 年,才由 Lenin 筒子决定正式使用格里历,俄罗斯的人民们失去的十天,并不在 1582 年。当日历(Calendar)遭遇本土化(Locale),猩猩也发笑吧。

On 24 January 1918 Lenin signed a decree that moved the brand-new Soviet Union from the Julian to the Gregorian calendar. In order to bridge the 14-day gap between Julian and Gregorian, 1-13 February 1918 were omitted, so that 31 January was directly followed by 14 February.

除此之外,PPK 同学也讨论了 time 标签需要考虑的其他一些问题,例如 moveable feast,罪魁是基督徒们纪念上帝之子的复活节。例如再之前的 Julian Calendar,例如真正确定年份的开始,公元前300年。

再说开去还有好多,PPK 的美好愿望,预计也不会全部实现,time 标签,能够被广为支持从而胜任眼下的使用,也就差不多了。历史学家们的担忧,十有八九会变为钞票,投入那些原意为这一坨历法、改革、节假日做些什么的程序员手里。或许会有个 JavaScript 库,来完善他们的 time(PPK 本人,就是个 JavaScript 大牛)。

只是,George Santayana 说过:

He who forgets history is doomed (or condemned) to repeat it

Comments