HTML5时间元素
HTML5time
元素用于语义标记HTML5页面中的日期和时间。
时间元素基础
时间元素包含两个版本的日期。一种日期形式的机器可读格式,一种版本的人类可读格式。这是一个time
元素的例子:
<time datetime="2012-05-01">Jan 1st 2012</time>
日期的机器可读版本写在datetime
属性中。可读版本写在开始和结束标记之间,作为"时间"元素的主体。
如果只想使用日期的机器可读版本,则可以将机器可读的日期版本放在time
元素的主体内,并保留datetime
属性。这是一个例子:
<time>2012-05-01</time>
HTML5规范中的时间元素
在2011年末,time
元素已从HTML5规范中删除,但又添加回去,并进行了一些更新。截至2012年5月,"时间"元素还处于活跃状态。
阳历公历
"时间"元素在公历中必须包含一个正日期。这意味着在公历(基督教)日历中,日期不能早于" 0000"年。
日期格式
时间元素的日期格式必须为以下格式之一:
YYYY-MM-DDTHH:MM:SS.SSS+ZHZM YYYY-MM-DDTHH:MM:SS.SSS-ZHZM YYYY-WXX
上面格式中使用的代码的含义是:
字母代码 | 含义 |
YYYY | 使用4位数字指定的年份,例如2012 |
MM | 使用2位数指定的月份,例如09或者12. 月份必须在01到12之间。 |
WXX | 使用2位数字指定的一年中的星期,例如 |
DD | 使用2位数指定的日期,例如 |
T | T表示此日期还包含T后面列出的时间部分。使用空格代替T也合法。 |
HH | 以2位数指定的小时数。时间从00到23. |
MM | 分钟用2位数字指定。分钟从00到59. |
SS | 使用2位数指定的秒数。秒从00到59. |
SSS | 使用3位数字指定的毫秒数。毫秒从000到999. |
-ZHZM | 相对于UTC(世界标准时间)的时区偏移量,使用+或者-指定,然后 使用总计4位数(HHMM)的小时和分钟偏移量。 |
+ ZHZM | 相对于UTC(世界标准时间)的时区偏移量,使用+或者-指定,然后 使用总计4位数(HHMM)的小时和分钟偏移量。 |
此格式的某些部分是可选的。例如,我们不需要时间部分。如果我们有时间部分,则秒和毫秒部分是可选的。但是,如果确实有时间部分,则还必须有时区部分。
以下是法律示例日期和时间格式的列表:
格式 | 示例 |
YYYY | 2012 |
YYYY-MM | 2012-05 |
YYYY-MM-DD | 2012-05-30 |
YYYY-WXX | 2012-W49 |
MM-DD | 05-30 |
YYYY-MM-DDTHH:MM-ZHZM | 2012-05-30T23:59-0500 |
YYYY-MM-DDTHH:MM:SS-ZHZM | 2012-05-30T23:59:59-0500 |
YYYY-MM-DDTHH:MM:SS.SSS + ZHZM | 2012-05-30T23:59:59:999 + 0200 |
YYYY-MM-DDTHH:MM:SS.SSS-ZHZM | 2012-05-30T23:59:59:999-0500 |
持续时间
可以使用时间元素来指定持续时间,而不是精确的日期。这是通过在时间前面加一个" P",然后写一些时间单位,最后写一个字母来指定时间单位来完成的。这是一个例子:
<time datetime="P1D">
本示例指定持续时间为1天(D
)。
可以使用的持续时间单位为:
单位 | 描述 |
D | 天 |
小时 | 小时 |
M | 分钟 |
S | 第二 |
我们不能指定月份,因为月份不是固定的时间(秒)。一个月的长度(以秒为单位)取决于我们所谈论的月份。
允许使用空格分隔持续时间的各个部分(以提高可读性),如下所示:
<time datetime="P 1 D">
如果在P之后使用T,则可以指定更精确的持续时间。例如:
<time datetime="PT12H 34M 59S">
本示例指定持续时间为12小时34分59秒。
注意如何允许使用空格分隔持续时间的各个组成部分。我们也可以这样写上面的持续时间:
<time datetime="PT 12H 34M 59S"> <time datetime="PT12H34M59S">
pubdate属性
"时间"元素的"发布日期"属性指示给定的"时间"元素是封闭的"文章"元素的发布日期,还是整个"body"元素的发布日期。
这是一个例子:
<time datetime="2012-05-01" pubdate>Jan 1st 2012</time>
注意,我们不需要为pubdate属性设置特定的true / false值。如果属性如上所示存在,则"时间"元素被视为发布日期。
这是一个在article
元素中嵌入time
元素的示例:
<article> <p> This is the last time a meteor hit earth. </p> <p> <time datetime="2012-05-01" pubdate>Jan 1st 2012</time> </p> </article>
对于"时间"元素应包含在" p"元素中还是作为" article"元素的直接子元素,没有任何规则。
时间的语义使用
搜索引擎的浏览器和网络爬虫可以使用time元素来推断正在显示的HTML的语义。例如,浏览器可能能够检测日期并询问我们是否要将该日期添加到日历中,或者是否采用其他格式。网络爬虫可能能够使用"时间"元素来分析何时发布给定的"文章",以检测网站更改的频率。
将来"时间"元素可能会在语义上有更多用途。