Как использовать jQuery timeago для обновления в реальном времени? - PullRequest
4 голосов
/ 30 апреля 2011

У меня есть значение 011-04-29T14:55:33.000Z, это значение попадает в шаблон jQuery. Я использовал timeago , чтобы преобразовать дату в истекшее время, но после записи в шаблон он не может быть обновлен, так как проходит больше времени.

Как бы я реализовал что-то, что будет автоматически обновляться?

Ответы [ 2 ]

6 голосов
/ 30 апреля 2011

Предположим, вы начинаете с этого (с домашней страницы timeago ):

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>

Теперь плагин timeago изменит название по мере переписывания вещей.Все, что вам нужно сделать, это отслеживать метку времени в другом месте, вернуть ее обратно в атрибут title и перезапустить плагин.Примерно так:

<abbr
    class="timeago"
    title="2008-07-17T09:24:17Z"
    data-ts="2008-07-17T09:24:17Z"
>July 17, 2008</abbr>

станет таким:

<abbr
    class="timeago"
    title="July 17, 2008"
    data-ts="2008-07-17T09:24:17Z"
>2 years ago</abbr>

И когда вы захотите обновить его, просто вставьте data-ts обратно в title и перезапустите плагин:

$('.timeago').each(function() {
    var $this = $(this);
    $this.attr('title', $this.data('ts'));
}).timeago();

Если вы используете более старый jQuery, вам может понадобиться использовать $this.attr('data-ts') вместо $this.data('ts').

1 голос
/ 24 января 2016

Я попробовал вышеупомянутое без удачи. И я нашел это. может быть полезным

https://mattbradley.github.io/livestampjs/

Здесь <span data-livestamp="your time goes here..."></span> достаточно.

Не забудьте добавить jquery.js и moment.js до livestamp.js

...