重要事項:本文件不適用於您目前選取的格式故事!
amp-date-countdown
描述
顯示到指定日期的倒數計時序列。
必要指令碼
<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