schema:datetime的值无效

时间:2015-03-19 19:41:19

标签: html5 datetime schema rich-snippets google-rich-snippets

我按照schema.org上的说明在其网站上添加了公司的营业时间,但是,W3C HTML validator不喜欢它> _<它给了我以下错误:

错误值Mo-Fr 09:00-19:00关于元素时间的属性日期时间:文字不符合时间 - 日期时间格式。

以下是 HTML

<div>
    <p>Office Hours:</p>
    <p><time itemprop="openingHours" datetime="Mo-Fr 09:00-19:00">Monday-Friday: 9:00 am to 7:00 pm</time></p>
    <p><time itemprop="openingHours" datetime="Sa 10:00-17:00">Saturdays: 10:00 am to 5:00 pm</time></p>
    <p><time itemprop="openingHours" datetime="Su 11:00-16:00">Sundays: 11:00 am to 4:00 pm</time></p>
</div>

我做错了什么?

1 个答案:

答案 0 :(得分:5)

你做错了什么:

HTML规范不支持您尝试代表的工作日和小时的范围。您的标记不是严格有效的HTML,但您可以说它是有效的HTML + Schema.org(尽管没有明确的标准)。

time元素用于特定日期,时间和/或时区数据。它也可以用一段时间(电影的运行时,作为一个真实世界的例子,看起来像2h 11m 33s)。规范中没有列出支持一系列日期和时间的有效值。

HTML规范的Semantics section描述了time的使用情况以及datetime属性的有效值。以下是可接受值的几个示例:

  

有效日期字符串:2011-11-18

     

有效的本地日期和时间字符串:2011-11-18T14:54

     

有效周字符串:2011-W47

     

有效期限字符串:PT4H18M3S

     

有效的时区偏移字符串:-08:00

在许多其他方面,其中没有一个对您的特定用例有用或适用。


你能做什么:

您可以尝试使用<data>代替<time>,例如:

<div itemscope itemtype="https://schema.org/LocalBusiness">
  <p>Office Hours:</p>
  <p><data itemprop="openingHours" value="Mo-Fr 09:00-19:00">Monday-Friday: 9:00 am to 7:00 pm</data></p>
  <p><data itemprop="openingHours" value="Sa 10:00-17:00">Saturdays: 10:00 am to 5:00 pm</data></p>
  <p><data itemprop="openingHours" value="Su 11:00-16:00">Sundays: 11:00 am to 4:00 pm</data></p>
</div>

哪个会验证,但它会绕过基于时间的数据规则(规范要求您使用<time>),而您现在牺牲了语义来进行多余的验证。

另请注意包含<div>。{/ p>中的itemscope and itemtype


我的一般意见:

我个人坚持使用Schema.org使用<time> datetime属性概述的示例。但理论上的上述例子应该可以正常工作。

这是一个很好的例子,说明为什么我不想为完美的验证而汗流。背。验证是一种有用的调试工具和质量检查,对于教授良好的标记实践非常重要。知道什么是有效的HTML看起来也很重要,使用验证器对于学习&#34;规则&#34; HTML的一部分 - 这样你就知道什么时候可以接受这些规则来适应你的特定用例。

基本上:不要出汗。使用Schema.org的好处超过了这几行无效标记的成本。