Comment puis-je utiliser jQuery timeago pour la mise à jour en direct?
-
27-10-2019 - |
Question
J'ai une valeur 011-04-29T14:55:33.000Z
cette valeur devient poussée dans un modèle jQuery. Je timeago pour convertir la date à temps écoulé, mais après avoir été écrit au modèle, il n'a aucun moyen de mise à jour comme plus le temps passe.
Comment puis-je mettre en œuvre quelque chose qui mettrait automatiquement à jour?
La solution
Supposons que vous commencez avec ce (à partir de la page d'accueil timeago ):
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
Maintenant, le plugin timeago va changer le titre comme les choses réécritures. Tout ce que vous devez faire est de garder trace de l'horodatage ailleurs, la remettre dans l'attribut title
et exécutez à nouveau le plug-in. Quelque chose comme ceci:
<abbr
class="timeago"
title="2008-07-17T09:24:17Z"
data-ts="2008-07-17T09:24:17Z"
>July 17, 2008</abbr>
Deviendra ceci:
<abbr
class="timeago"
title="July 17, 2008"
data-ts="2008-07-17T09:24:17Z"
>2 years ago</abbr>
Et si vous voulez le mettre à jour, il suffit de mettre arrière data-ts
dans title
et exécutez à nouveau le plug-in:
$('.timeago').each(function() {
var $this = $(this);
$this.attr('title', $this.data('ts'));
}).timeago();
Si vous utilisez un jQuery plus, vous pourriez avoir besoin d'utiliser $this.attr('data-ts')
en place de $this.data('ts')
.
Autres conseils
J'ai essayé ci-dessus sans luck.and i trouvé ça. pourrait être utile.
https://mattbradley.github.io/livestampjs/
Ici <span data-livestamp="your time goes here..."></span>
suffit.
Ne pas oublier d'ajouter jquery.js
et moment.js
avant livestamp.js