Oma*_*mar 3 schema html5 datetime rich-snippets google-rich-snippets
我按照schema.org上的说明在他们的网站上添加公司的营业时间,但是,W3C的HTML验证器不喜欢它> _ <它给了我以下错误:
元素时间属性datetime的错误值Mo-Fr 09:00-19:00:文字不满足time-datetime格式.
以下是我的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>
我究竟做错了什么?
你做错了什么:
HTML规范不支持您尝试表示的工作日和工作时间范围.您的标记不是严格有效的HTML,但您可以说它是有效的HTML + Schema.org(尽管没有明确的标准).
该time元素用于特定日期,时间和/或时区数据.它也可以用一段时间(电影的运行时,作为一个真实世界的例子,看起来像2h 11m 33s).规范中没有列出支持一系列日期和时间的有效值.
HTML规范的语义部分描述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>.
我的一般意见:
我个人会坚持使用Schema.org概述使用<time>该datetime属性的示例.但理论上的上述例子应该可以正常工作.
这是一个很好的例子,说明为什么我不想为完美的验证而汗流.背.验证是一种有用的调试工具和质量检查,对于教授良好的标记实践非常重要.知道有效的HTML是什么样子也很重要,使用验证器对于学习HTML的"规则"非常有用 - 这部分内容让您知道何时可以将这些规则用于特定用例.
基本上:不要出汗.使用Schema.org的好处超过了这几行无效标记的成本.