你可以想象,在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
(时间)前缀表示一个更为精确的时间。
通过结合精确、结构化的日期格式,日期和时间得以借助自然语言来设定,同时实现了一个对于人类和机器都可读的通用格式。