jQuery Countdown / Zählen mit serverseitigen Werte
-
20-09-2019 - |
Frage
Script: http://keith-wood.name/countdown.htm
Tägliche json Antwort:
items: { fajr: '5:23 am', sharooq: '7:23 am', dhur: '1:34 pm', asr: '4:66 pm': magrib: '6:23 pm', isha: '8:01 pm'}
Wenn die Seite lädt, ich eine Ajax-Anfrage machen und die oben genannten Reaktionszeiten erhalten. Es sind Ereignisse, die täglich passieren, mit unterschiedlichen Zeitpunkten. Ich mag, dass die Zeit bekommen und eine Zählung legt auf, wie viele Minuten bleiben oder Stunden oder Sekunden, und zeigt, dass und einmal die Sekunden fertig sind, dann zeigen, wie viele Minuten vor dem Ereignisse stattfand. Nach 15 Minuten zeigen, ein neues Ereignis nach unten zählen. Dies ist, wie es auf dem Display aussehen:
dhur 2 hours left
dhur 2 minutes left (if no longer hours left)
dhur 55 seconds left (if no longer minutes left)
dhur 5 seconds ago (if count down finished and then show how many seconds ago)
dhur 9 minutes ago (if extended more then seconds, then show how many minutes ago)
asr 1 hour left (after 15 minutes later time changes to new event)
Wenn das Skript Ich verwende nicht gut ist und Sie es vorziehen, ein anderes Skript für diese Art von Aufgabe, mit mir bitte Aktie. Es muss nicht ein jQuery-Skript, aber es hilft, wenn es jQuery ist.
Lösung
Ich denke, man wäre besser dran, diese Sache nicht neu implementieren.
Es ist schon eine wirklich nette jQuery-Plugin für diese Funktionalität (mit i18n Unterstützung auch)
ist Timeago eine jQuery-Plugin, das macht es unterstützt einfach automatisch Aktualisierung Fuzzy-Zeitstempel (Beispielsweise „vor 4 Minuten“ oder „etwa 1 Tag vor“oder "2 Jahre ab jetzt")
P. S .: nicht vergessen Satz jQuery.timeago.settings.allowFuture = true;
zukünftigen Termine
Wenn Sie irgendeine Art von „Callback“ müssen Sie zwei Dinge tun könnten.
- Angenommen, Sie nur Englisch unterstützt (keine i18n) einfach
setInterval
verwenden, die alle 20-25 Sekunden überprüft, ob der String-Set von jQuery timeago ist „15 Minuten vor“ und dann tun, was -
Hackden Code des Plugins anpassen und sich Haken in die z.B.$timeago.inWords
Verfahren und tun, was, wenn derdistanceMillis
Parameter>=900000
(15 * 60 * 1000).