Come si usa jQuery timeago per l'aggiornamento in tempo reale?
-
27-10-2019 - |
Domanda
Ho un valore 011-04-29T14:55:33.000Z
, questo valore viene inserito in un modello jQuery.Ho usato timeago per convertire la data in tempo trascorso ma dopo essere stata scritta sul modello non ha modo di aggiornarsipassa più tempo.
Come implementerei qualcosa che si aggiorni automaticamente?
Soluzione
Supponi di iniziare con questo (dalla timeago home page):
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
Ora, il plugin timeago cambierà il titolo mentre riscrive le cose.Tutto quello che devi fare è tenere traccia del timestamp altrove, rimetterlo nell'attributo title
e rieseguire il plug-in.Qualcosa di simile:
<abbr
class="timeago"
title="2008-07-17T09:24:17Z"
data-ts="2008-07-17T09:24:17Z"
>July 17, 2008</abbr>
Diventerà questo:
<abbr
class="timeago"
title="July 17, 2008"
data-ts="2008-07-17T09:24:17Z"
>2 years ago</abbr>
E quando vuoi aggiornarlo, rimetti data-ts
in title
ed esegui nuovamente il plug-in:
$('.timeago').each(function() {
var $this = $(this);
$this.attr('title', $this.data('ts'));
}).timeago();
Se stai utilizzando un vecchio jQuery, potresti dover utilizzare $this.attr('data-ts')
al posto di $this.data('ts')
.
Altri suggerimenti
Ho provato quanto sopra senza fortuna e ho trovato questo.potrebbe essere utile.
https://mattbradley.github.io/livestampjs/
Qui è sufficiente <span data-livestamp="your time goes here..."></span>
.
Non dimenticare di aggiungere jquery.js
e moment.js
prima di livestamp.js