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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top