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 day - 0, 1, 2,...12, 13..Infinity
dd day - 00, 01, 02, 03..Infinity
h hour - 0, 1, 2,...12, 13..Infinity
hh hour - 01, 02, 03..Infinity
m minute - 0, 1, 2,...12, 13..Infinity
mm minute - 01, 01, 02, 03..Infinity
s second - 0, 1, 2,...12, 13..Infinity
ss second - 00, 01, 02, 03..Infinity
天或天數的國際化字串
小時 小時或小時數的國際化字串
分鐘 分鐘或分鐘數的國際化字串
秒或秒數的國際化字串

格式化值的範例

此表格提供在 Mustache 範本中指定的格式化值範例,以及輸出範例

格式 範例輸出 備註
{hh}:{mm}:{ss} 04:24:06 -
{h} {hours} and {m} {minutes} and {s} {seconds} 4 hours and 1 minutes and 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'

屬性

您必須指定至少一個必要的屬性:`end-date`、`timeleft-ms`、`timestamp-ms`、`timestamp-seconds`。

end-date

要倒數計時到的 ISO 格式日期。例如,`2020-06-01T00:00:00+08:00`

timestamp-ms

以毫秒為單位的 POSIX epoch 值;假設為 UTC 時區。例如,`timestamp-ms="1521880470000"`。

timestamp-seconds

以秒為單位的 POSIX epoch 值;假設為 UTC 時區。例如,`timestamp-seconds="1521880470"`。

timeleft-ms

剩餘倒數計時的毫秒值。例如,剩餘 48 小時 `timeleft-ms="172800000"`。

offset-seconds (選填)

代表要從 `end-date` 新增或減去的秒數的正數或負數。例如,`offset-seconds="60"` 會將 60 秒新增至 end-date。

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 小時。

  • 支援的值:`days`、`hours`、`minutes`、`seconds`
  • 預設值:`days`

data-count-up (選填)

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

活動

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

超時

當計時器超時時。若要使此動作生效,`when-ended` **必須** 設定為 `stop`。計時器超時時,您只能執行低信任度動作,例如 `amp-animation` 和 `amp-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