Google AMP - Contagem regressiva de data

Ainda outro componente de amplificador chamado Amp Date countdown, que é usado para exibir dias, horas, minutos, segundos até uma determinada data, ou seja, Y2K38 ( 2038)por padrão. A exibição pode ser feita de acordo com os locais de sua escolha; por padrão, é en (inglês) .Amp-date-countdown usa o modelo amp-mustache para renderizar dados.

Neste capítulo, daremos uma olhada em alguns exemplos de trabalho para entender o amp-date-countdown com mais detalhes.

Para trabalhar com amp-date-countdown, precisamos adicionar o seguinte script

Para amp-date-countdown

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

Para amp-bigode

<script async custom-template = "amp-mustache" 
   src = "https://cdn.ampproject.org/v0/amp-mustache-0.1.js">
</script>

Tag Amp-data-contagem regressiva

A tag amp-date-countdown é a seguinte -

<amp-date-countdown timestamp-seconds = "2100466648"
   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>

Atributos para amp-date-countdown

Os atributos para amp-date-countdown estão listados na tabela aqui -

Sr. Não Atributo e descrição
1

end-date

Uma data formatada por ISO para contagem regressiva. Por exemplo, 2025-08-01T00: 00: 00 + 08: 00

2

timestamp-ms

Um valor de época POSIX em milissegundos; assumido como o fuso horário UTC. Por exemplo, timestamp-ms = "1521880470000"

3

timestamp-seconds

Um valor de época POSIX em segundos; assumido como o fuso horário UTC. Por exemplo, timestamp-seconds = "1521880470"

4

timeleft-ms

Um valor em milissegundos que falta para a contagem regressiva. Por exemplo, 50 horas restantes timeleft-ms = "180.000.000"

5

offset-seconds (optional)

Um número positivo ou negativo que indica o número de segundos a serem adicionados ou subtraídos da data de término fornecida. Por exemplo, offset-seconds = "60" adiciona 60 segundos à data de término

6

when-ended (optional)

Especifica se o cronômetro deve ser interrompido quando atingir 0 segundos. O valor pode ser definido para parar (padrão) para indicar que o cronômetro parará em 0 segundos e não passará da data final ou continuará a indicar que o cronômetro deve continuar após atingir 0 segundos.

7

locale (optional)

Uma string de idioma de internacionalização para cada unidade de cronômetro. O valor padrão é en (para inglês). Os valores suportados estão listados abaixo.

Formato

Os formatos que amp-date-countdown usa para exibir a contagem regressiva são fornecidos na tabela a seguir -

Sr. Não Formato e descrição
1

d

Exibir dia como 0,1,2,3 ... infinito

2

dd

Exibir dia como 00,01,02,03 ... infinito

3

h

Exibir hora como 0,1,2,3 ... infinito

4

hh

Exibir hora como 00,01,02,03 ... infinito

5

m

Exibir minuto como 0,1,2,3,4 ... infinito

6

mm

Exibir minuto como 00,01,02,03… .infinity

7

s

Exibir o segundo como 0,1,2,3 ... infinito

8

ss

Exibir o segundo como 00,01,02,03… .infinity

9

days

Exibir string de dia ou dias de acordo com o local

10

hours

Exibir string de hora ou horas de acordo com o local

11

minutes

Exibir string de minutos ou minutos de acordo com o local

12

seconds

Exibir sequência de segundos ou segundos de acordo com o local

Exemplo

<!doctype html>
<html amp lang = "en">
   <head>
      <meta charset = "utf-8">
      <script async src = "https://cdn.ampproject.org/v0.js"></script>
      <title>Google AMP - Amp Date-Countdown</title>
      <link rel = "canonical" href = " http://example.ampproject.org/article-metadata.html">
      <meta name = "viewport" content = "width = device-width,minimum-scale = 1,initial-scale = 1">

      <style amp-boilerplate>
         body{-webkit-animation:-amp-start 8s steps(1,end) 
            0s 1 normal both;-moz-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;animation:
            -amp-start 8s steps(1,end) 0s 1 normal both
         }
         @-webkit-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}
      </style>
      <noscript>
         <style amp-boilerplate>
            body{-webkit-animation:none;-moz-animation:none;-ms
               -animation:none;animation:none}
         </style>
      </noscript>

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

      <script async custom-template="amp-mustache" src=
         "https://cdn.ampproject.org/v0/amp-mustache-0.1.js">
      </script>
   </head>
   
   <body>
      <h1>Google AMP - Amp Date-Countdown</h1>
      <amp-date-countdown 
         timestamp-seconds = "2145683234" 
         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>
   </body>
</html>

Resultado

Exemplo

Vamos entender os atributos amp-countdown offset-seconds com um exemplo funcional -

<!doctype html>
<html amp lang = "en">
   <head>
      <meta charset = "utf-8">
      <script async src = "https://cdn.ampproject.org/v0.js"></script>
      <title>Google AMP - Amp Date-Countdown</title>
      <link rel = "canonical" href = " http://example.ampproject.org/article-metadata.html">
      <meta name = "viewport" content = "width = device-width,minimum-scale = 1,initial-scale = 1">
      
      <style amp-boilerplate>
         body{
            -webkit-animation:-amp-start 8s steps(1,end) 
            0s 1 normal both;-moz-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;animation:
            -amp-start 8s steps(1,end) 0s 1 normal both
         }
         @-webkit-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}
      </style>
      <noscript>
         <style amp-boilerplate>
            body{
               -webkit-animation:none;-moz-animation:none;-ms
               -animation:none;animation:none}
         </style>
      </noscript>

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

      <script async custom-template = "amp-mustache" 
         src = "https://cdn.ampproject.org/v0/amp-mustache-0.1.js">
      </script>
   </head>
   <body>
      <h1>Google AMP - Amp Date-Countdown</h1>
      <amp-date-countdown 
         end-date = "2020-01-19T08:14:08.000Z" 
         offset-seconds = "-50" 
         layout = "fixed-height" 
         height = "100">

         <template type = "amp-mustache">
            <p class = "p1">
               {{d}} days, {{h}} hours, {{m}} 
               minutes and {{s}} seconds until 50 
               seconds before 2020.
            </p>
         </template>
      </amp-date-countdown>
   </body>
</html>

Resultado

Lista de localidades suportadas

A seguir está a lista de localidades compatíveis com amp-date-countdown -

Sr. Não Nome e local
1

en

Inglês

2

es

espanhol

3

fr

francês

4

de

alemão

5

id

indonésio

6

it

italiano

7

ja

japonês

8

ko

coreano

9

nl

holandês

10

pt

Português

11

ru

russo

12

th

tailandês

13

tr

turco

14

vi

vietnamita

15

zh-cn

Chinês simplificado

16

zh-tw

Chinês tradicional

Agora, vamos experimentar um exemplo para exibir a contagem regressiva usando uma das localidades acima.

Exemplo

<!doctype html>
<html amp lang = "en">
   <head>
      <meta charset = "utf-8">
      <script async src = "https://cdn.ampproject.org/v0.js"></script>
      <title>Google AMP - Amp Date-Countdown</title>
      <link rel = "canonical" href = "http://example.ampproject.org/article-metadata.html">
      <meta name="viewport" content="width = device-width, minimum-scale = 1,initial-scale = 1">

      <style amp-boilerplate>
         body{
            -webkit-animation:
            -amp-start 8s steps(1,end)0s 1 normal both;-moz-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:
            -amp-start 8s steps(1,end) 0s 1 normal both;animation:
            -amp-start 8s steps(1,end) 0s 1 normal both
         }
         @-webkit-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes 
         -amp-start{from{visibility:hidden}to{visibility:visible}}
      </style>
      <noscript>
         <style amp-boilerplate>
            body{
               -webkit-animation:none;
               -moz-animation:none;
               -ms-animation:none;
               animation:none}
         </style>
      </noscript>

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

      <script async custom-template = "amp-mustache" 
         src = "https://cdn.ampproject.org/v0/amp-mustache-0.1.js">
      </script>
   </head>
   
   <body>
      <h1>Google AMP - Amp Date-Countdown</h1>
      <amp-date-countdown 
         locale = "ja" 
         end-date = "2020-01-19T08:14:08.000Z" 
         offset-seconds = "-50" 
         layout = "fixed-height" 
         height = "100">
         
         <template type = "amp-mustache">
            <p class = "p1">
               {{d}} {{days}}, {{h}} {{hours}}, {{m}} 
               {{minutes}} and {{s}} {{seconds}} until 
               50 seconds before 2020.
            </p>
         </template>
      </amp-date-countdown>
   </body>
</html>

Resultado