你可以想象,在HTML里写日期如此简单。

但问题是,软件很难知道这串数字是一个日期。另一方面,人们对相同的数字可能会有不同的解读,如果你来自英国,这些数字代表2015年5月6日,但如果你生活在美国,你可能认为它表示6月5日,2015年。

为了解决这个问题,time元素必须对人是可读的——不管是6 May 2015,还是May 6th, 2015——这些参数必须格式化。

time元素是由两个版本的日期或日期/时间属性构成的。首先是一个人类可读的、自然语言的日期;第二个是名为datetime的机器可读属性,它遵从ISO标准日期格式:YYYY-MM-DDThh:mm:ss。年月日后跟着的是小时、分钟和秒(如果我们需要精确的话)。

time元素有一段曲折的历史。在2011年首次引入HTML5中的时候,它曾遭HTML规范的抛弃,被一个更通用、且在我看来缺乏语义的data元素替代。好在当年晚些时候time元素又被加入到规范中,并增加了一些有用的额外功能。比如此前的datetime格式要求精确,而新支持的ISO标准格式则允许使用模糊日期。

当需要描述一个事件持续多长时间时,可以使用datetime属性和前缀P。添加后缀D表示天、H表示小时、M表示分钟、S表示秒。如果你想标记为了买火车票排了一天队的话,像下面这样写就好了。

下一个事件持续了1天6小时10分钟30秒。发现了吗?额外的T(时间)前缀表示一个更为精确的时间。

通过结合精确、结构化的日期格式,日期和时间得以借助自然语言来设定,同时实现了一个对于人类和机器都可读的通用格式。