AMP

重要事項:此文件不適用於您目前選取的格式 電子郵件

amp-date-countdown

 
您現在可以使用這個元件在有效的 AMP 文件之外,方法是使用此元件的 Bento 版本。請參閱 Bento 指南,以瞭解詳情。

說明

顯示倒數計時序列,直到指定的日期為止。

 

必要指令碼

<script async custom-element="amp-date-countdown" src="https://cdn.ampproject.org/v0/amp-date-countdown-0.1.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 小時又 1 分鐘又 45 秒 -
{d} {days} {h}:{mm} 1 天 5:03 -
{d} {days} {h} {hours} {m} {minutes} 50 天 5 小時 10 分鐘 -
{d} {days} {h} {hours} {m} {minutes} 20 天 5 小時 10 分鐘 -
{h} {hours} {m} {minutes} 240 小時 10 分鐘 biggest-unit='hours'
{d} {days} {h} {hours} {m} {minutes} 50 天 5 小時 10 分鐘 locale='zh-cn'

屬性

您必須至少指定下列其中一個必要屬性: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

data-count-up (選填)

加入此屬性可反轉倒數計時的方向,改為向上計時。這對於顯示自過去目標日期起經過的時間很有用。若要在目標日期已過時繼續計時,請務必加入 when-ended 屬性,並將值設為 continue。如果目標日期在未來,amp-date-countdown 會顯示遞減 (朝向 0) 的負值。

活動

amp-date-countdown 元件公開下列事件,您可以使用 AMP on-syntax 觸發

逾時

當計時器逾時時。若要使此動作發揮作用,必須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>

呈現方式如下

驗證

請參閱 AMP 驗證器規格中的 amp-date-countdown 規則

需要更多協助嗎?

您已經閱讀這份文件十幾次了,但它仍然沒有真正涵蓋您的所有問題嗎?也許其他人也有同感:在 Stack Overflow 上與他們交流。

前往 Stack Overflow
發現錯誤或缺少功能?

AMP 專案非常鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的長期參與者,但我們也歡迎針對您特別感興趣的問題提供一次性的貢獻。

前往 GitHub