schema:datetime的值无效

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>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

zep*_*fan 5

你做错了什么:

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

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

HTML规范的语义部分描述timedatetime属性的使用和有效值.以下是一些可接受值的示例:

有效日期字符串: 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>
Run Code Online (Sandbox Code Playgroud)

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

另外要注意的项目范围和项目类型中含有<div>.


我的一般意见:

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

这是一个很好的例子,说明为什么我不想为完美的验证而汗流.背.验证是一种有用的调试工具和质量检查,对于教授良好的标记实践非常重要.知道有效的HTML是什么样子也很重要,使用验证器对于学习HTML的"规则"非常有用 - 这部分内容让您知道何时可以将这些规则用于特定用例.

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