具有微数据的多个时间元素

时间:2014-10-01 17:17:25

标签: html5 date time microdata

我有一个代表我公司营业时间的定义清单:

<dl>
  <dt>Monday - Friday</dt>
  <dd>8:30am to 5:30pm</dd>
  <dt>Saturday - Sunday</dt>
  <dd>9:00am to 5:00pm</dd>
  <dt>Holidays</dt>
  <dd>Closed</dd>
</dl>

这似乎是一种安排此内容的良好,有条理的方式。但也许我错了?

我想知道如何使用time元素来表示开放时间?

最终,我正在考虑做这样的事情:

<time itemprop="openingHours" datetime="Mo,Tu,We,Th,Fr 8:30-17:30">Monday - Friday, 8:30am to 5:30pm</time>

但是对于dt标记中的一周中的日期以及dd中的小时数,我不确定标记的正确方法是什么?两个不同的time标签似乎有误。

1 个答案:

答案 0 :(得分:1)

使用Microdata,你不会注释&#34;你的HTML标记。标记仅用作载体。在Microdata使用者解析页面之后,HTML和Microdata项目之间不再存在关联。

所以你实际上有两个问题:

  • 我应该使用哪种HTML5标记?
  • 如何使用此标记添加我想用Microdata说的内容?

HTML5

HTML5问题很简单:您可以将time元素用于日期,时间,时区偏移或持续时间。所以你的dl看起来像是:

<dl>
  <dt>Monday - Friday</dt>
    <dd><time datetime="08:30">8:30am</time> to <time datetime="17:30">5:30pm</time></dd> <!-- could also use a duration string instead, or an additional time element; but probably doesn’t make much sense in this context -->
  <dt>Saturday - Sunday</dt>
    <dd><time datetime="09:00">9:00am</time> to <time datetime="17:00">5:00pm</time></dd>
  <dt>Holidays</dt>
    <dd>Closed</dd>
</dl>

Schema.org和Microdata

现在查看schema.org openingHours property的定义,我们发现没有强制性内容格式:&#34;营业时间可以指定为[...]&# 34; (强调我的)。

但是,他们作为可能格式记录/推荐的语法是无效HTML5 time element不能具有日期时间值,例如&#34; Mo,Tu,We,Th ,8:30-17:30&#34;或者&#34; Mo-Su&#34; (我创建了一个issue)。

因此,如果您想使用此文档格式,则不应使用time元素。相反,你可以

  • 使用data element及其value属性:

    <data itemprop="openingHours" value="Mo,Tu,We,Th,Fr 8:30-17:30">…</data>
    

    如果您愿意,可以使用它来包装相应dtdd的内容。

  • 使用meta element

    <meta itemprop="openingHours" content="Mo,Tu,We,Th,Fr 8:30-17:30">
    

    如果您愿意,可以将其设置为相应的dtdd的孩子(是的,in the body)。

您可能希望改为使用openingHoursSpecificationOpeningHoursSpecification