text.html 2.7 KB
Newer Older
ToTensor's avatar
ToTensor 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
 
<p class="zw">你可以想象,在HTML里写日期如此简单。</p> 
<pre class="代码无行号"><code><footer> 
   <small>Published by Andy Clarke on 06/05/2015</small> 
</footer></code></pre> 
<p class="zw">但问题是,软件很难知道这串数字是一个日期。另一方面,人们对相同的数字可能会有不同的解读,如果你来自英国,这些数字代表2015年5月6日,但如果你生活在美国,你可能认为它表示6月5日,2015年。</p> 
<p class="zw">为了解决这个问题,<code>time</code>元素必须对人是可读的——不管是6 May 2015,还是May 6th, 2015——这些参数必须格式化。</p> 
<pre class="代码无行号"><code><time>May 6th 2015</time></code></pre> 
<p class="zw"><code>time</code>元素是由两个版本的日期或日期/时间属性构成的。首先是一个人类可读的、自然语言的日期;第二个是名为<code>datetime</code>的机器可读属性,它遵从ISO标准日期格式:<code>YYYY-MM-DDThh:mm:ss</code>。年月日后跟着的是小时、分钟和秒(如果我们需要精确的话)。</p> 
<pre class="代码无行号"><code><time datetime="2015-05-06">May 6th 2015</time></code></pre> 
<p class="zw"><code>time</code>元素有一段曲折的历史。在2011年首次引入HTML5中的时候,它曾遭HTML规范的抛弃,被一个更通用、且在我看来缺乏语义的<code>data</code>元素替代。好在当年晚些时候<code>time</code>元素又被加入到规范中,并增加了一些有用的额外功能。比如此前的<code>datetime</code>格式要求精确,而新支持的ISO标准格式则允许使用模糊日期。</p> 
<pre class="代码无行号"><code><time datetime="2015"> means the year 2015 
<time datetime="2015-05"> means May 2015 
<time datetime="05-06">means 6th May (in any year) 
<time datetime="2015-W1"> means week 1 of 2015</code></pre> 
<p class="zw">当需要描述一个事件持续多长时间时,可以使用<code>datetime</code>属性和前缀<code>P</code>。添加后缀<code>D</code>表示天、<code>H</code>表示小时、<code>M</code>表示分钟、<code>S</code>表示秒。如果你想标记为了买火车票排了一天队的话,像下面这样写就好了。</p> 
<pre class="代码无行号"><code><time datetime="P 1 D"></code></pre> 
<p class="zw">下一个事件持续了1天6小时10分钟30秒。发现了吗?额外的<code>T</code>(时间)前缀表示一个更为精确的时间。</p> 
<pre class="代码无行号"><code><time datetime="PT 1D 6H 10M 30S"></code></pre> 
<p class="zw">通过结合精确、结构化的日期格式,日期和时间得以借助自然语言来设定,同时实现了一个对于人类和机器都可读的通用格式。</p>