">文档:<amp-date-countdown> - amp.dev - AMP 框架
AMP

amp-date-countdown

实验性
Bento

说明

显示倒计时序列,倒计时至指定日期。

 

必需脚本

<script async custom-element="amp-date-countdown" src="https://cdn.ampproject.org/v0/amp-date-countdown-1.0.js"></script>

用法

显示倒计时序列,以指示事件计划发生前剩余的时间。


amp-date-countdown 提供倒计时时间数据,您可以在 AMP 页面中呈现这些数据。通过在 amp-date-countdown 标签中提供特定的 属性amp-date-countdown 扩展将返回时间参数列表,您可以将其传递给 amp-mustache 模板进行呈现。请参阅 每个返回的时间参数的以下列表


<amp-date-countdown
  timestamp-seconds="2147483648"
  layout="fixed-height"
  height="50"
>
  <template type="amp-mustache">
    <p class="p1">
{{d}} days, {{h}} hours, {{m}} minutes and {{s}} seconds until
      <a href="https://en.wikipedia.org/wiki/Year_2038_problem">Y2K38</a>.
    </p>
  </template>
</amp-date-countdown>

返回的时间参数

此表列出了您可以在 Mustache 模板中指定的格式

格式 含义
d 天 - 0、1、2、...12、13..无限大
dd 天 - 00、01、02、03..无限大
h 小时 - 0、1、2、...12、13..无限大
hh 小时 - 01、02、03..无限大
m 分钟 - 0、1、2、...12、13..无限大
mm 分钟 - 01、01、02、03..无限大
s 秒 - 0、1、2、...12、13..无限大
ss 秒 - 00、01、02、03..无限大
days 天或天的国际化字符串
hours 小时或小时的国际化字符串
minutes 分钟或分钟的国际化字符串
seconds 秒或秒的国际化字符串

格式化值示例

此表格提供了在 Mustache 模板中指定格式化值以及输出示例。

格式 示例输出 备注
{hh}:{mm}:{ss} 04:24:06 -
{h} {hours} 和 {m} {minutes} 和 {s} {seconds} 4 hours 和 1 minutes 和 45 seconds -
{d} {days} {h}:{mm} 1 day 5:03 -
{d} {days} {h} {hours} {m} {minutes} 50 days 5 hours 10 minutes -
{d} {days} {h} {hours} {m} {minutes} 20 days 5 hours 10 minutes -
{h} {hours} {m} {minutes} 240 hours 10 minutes biggest-unit='hours'
{d} {days} {h} {hours} {m} {minutes} 50 天 5 小时 10 分钟 locale='zh-cn'

从 0.1 迁移

amp-date-countdown 的实验性 1.0 版本使用属性名称 count-up,而不是 0.1 中的 data-count-up,以支持“倒计时”功能。有关更多详细信息,请参阅下方 Attributes 下的 count-up 部分。

在有效的 AMP 文档之外独立使用

借助 Bento,您可以在非 AMP 页面中使用 AMP 组件,而无需完全遵守有效的 AMP。您可以获取这些组件,并将它们置于不支持 AMP 的框架和 CMS 中的实现中。在我们的指南 在非 AMP 页面中使用 AMP 组件 中阅读更多内容。

要查找 amp-date-countdown 的独立版本,请参阅 bento-date-countdown

属性

您必须指定以下必需属性中的至少一个:end-datetimeleft-mstimestamp-mstimestamp-seconds

end-date

要倒计时的 ISO 格式化日期。例如,2020-06-01T00:00:00+08:00

timestamp-ms

以毫秒为单位的 POSIX 纪元值;假定为 UTC 时区。例如,timestamp-ms="1521880470000"

timestamp-seconds

以秒为单位的 POSIX 纪元值;假定为 UTC 时区。例如,timestamp-seconds="1521880470"

timeleft-ms

要倒计时的剩余毫秒值。例如,剩余 48 小时 timeleft-ms="172800000"

offset-seconds(可选)

一个正数或负数,表示要从 end-date 中添加或减去的秒数。例如,offset-seconds="60" 将 60 秒添加到结束日期。

when-ended(可选)

指定在计时器达到 0 秒时是否停止计时器。该值可以设置为 stop(默认值)以指示计时器在 0 秒时停止,并且不会超过最终日期,也可以设置为 continue 以指示计时器在达到 0 秒后继续计时。

locale(可选)

每个计时单位的国际化语言字符串。默认值为en(英语)。

支持的值

代码 语言
de 德语
en 英语
es 西班牙语
fr 法语
id 印尼语
it 意大利语
ja 日语
ko 韩语
nl 荷兰语
pt 葡萄牙语
ru 俄语
th 泰语
tr 土耳其语
vi 越南语
zh-cn 简体中文
zh-tw 繁体中文

biggest-unit(可选)

允许amp-date-countdown组件根据指定的biggest-unit值计算时间差。例如,假设还有50天10小时,如果biggest-unit设置为hours,则结果显示还有1210小时

  • 支持的值:dayshoursminutesseconds
  • 默认值:days

count-up(可选)

包含此属性以反转倒计时的方向,改为计数。这对于显示过去目标日期以来经过的时间很有用。要继续倒计时,当目标日期在过去时,请务必包含when-ended属性和continue值。如果目标日期在未来,amp-date-countdown将显示递减(朝向0)的负值。

请注意,属性名称不同于0.1,后者使用data-count-up属性来切换此功能。此功能的行为与0.1相同。

活动

amp-date-countdown组件公开以下事件,你可以使用AMP on 语法来触发

超时

当计时器超时时。要使此操作生效,when-ended 必须设置为 stop。计时器超时时,你只能运行低信任操作,例如 amp-animationamp-video 操作。这是为了执行 AMP 的 UX 原则,即不允许页面内容在没有明确用户操作的情况下重排。 |

示例:演示超时事件的使用

<h1 id="sample">
  When Timer hits 0, will hide the timer itself and hide this message.
</h1>

<amp-animation id="hide-timeout-event" layout="nodisplay">
  <script type="application/json">
    {
      "duration": "1s",
      "fill": "both",
      "selector": "#ampdate, #sample",
      "keyframes": {"visibility": "hidden"}
    }
  </script>
</amp-animation>
<amp-date-countdown
  id="ampdate"
  end-date="2018-07-17T06:19:40+08:00"
  on="timeout: hide-timeout-event.start"
  height="400"
  width="400"
  when-ended="stop"
  locale="en"
>
  <template type="amp-mustache">
    <h1>Countdown Clock</h1>
    <div>
{{dd}} : {{hh)) : {{mm}} : {{ss}}    </div>
  </template>
</amp-date-countdown>

呈现为

需要更多帮助?

你已经读过本文档很多遍了,但它并没有真正涵盖你的所有问题?也许其他人也有同样的感觉:在 Stack Overflow 上联系他们。

转到 Stack Overflow
发现了一个错误或缺少一个功能?

AMP 项目强烈鼓励你的参与和贡献!我们希望你将成为我们开源社区的持续参与者,但我们也欢迎针对你特别热衷的问题进行一次性贡献。

转到 GitHub