Wie verwende ich jQuery timeago für Live-Updates?
-
27-10-2019 - |
Frage
Ich habe einen Wert 011-04-29T14:55:33.000Z
. Dieser Wert wird in eine jQuery-Vorlage übertragen.Ich habe timeago verwendet, um das Datum in die verstrichene Zeit umzuwandeln, aber nach dem Schreiben in die Vorlage kann es nicht aktualisiert werdenmehr Zeit vergeht.
Wie würde ich etwas implementieren, das automatisch aktualisiert wird?
Lösung
Angenommen, Sie beginnen damit (von der timeago -Homepage :
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
Jetzt ändert das timeago-Plugin den Titel, während es Dinge neu schreibt.Alles, was Sie tun müssen, ist, den Zeitstempel an anderer Stelle zu verfolgen, ihn wieder in das Attribut title
einzufügen und das Plugin erneut auszuführen.So etwas wie das:
<abbr
class="timeago"
title="2008-07-17T09:24:17Z"
data-ts="2008-07-17T09:24:17Z"
>July 17, 2008</abbr>
Wird dies:
<abbr
class="timeago"
title="July 17, 2008"
data-ts="2008-07-17T09:24:17Z"
>2 years ago</abbr>
Und wenn Sie es aktualisieren möchten, setzen Sie einfach data-ts
wieder in title
und führen Sie das Plugin erneut aus:
$('.timeago').each(function() {
var $this = $(this);
$this.attr('title', $this.data('ts'));
}).timeago();
Wenn Sie eine ältere jQuery verwenden, müssen Sie möglicherweise $this.attr('data-ts')
anstelle von $this.data('ts')
verwenden.
Andere Tipps
Ich habe das oben genannte ohne Glück versucht. Und ich habe es gefunden.könnte hilfreich sein.
https://mattbradley.github.io/livestampjs/
Hier reicht <span data-livestamp="your time goes here..."></span>
aus.
Vergessen Sie nicht, vor dem jquery.js
moment.js
und livestamp.js
hinzuzufügen