我有一个值011-04-29T14:55:33.000Z
,这个值被推送到一个 jQuery 模板中。我使用timeago将日期转换为经过的时间,但在写入模板后,随着时间的推移,它无法更新。
我将如何实现会自动更新的东西?
我有一个值011-04-29T14:55:33.000Z
,这个值被推送到一个 jQuery 模板中。我使用timeago将日期转换为经过的时间,但在写入模板后,随着时间的推移,它无法更新。
我将如何实现会自动更新的东西?
假设您从这个开始(来自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')
我没有运气就尝试了上述方法。我发现了这个。可能会有所帮助。
https://mattbradley.github.io/livestampjs/
这里<span data-livestamp="your time goes here..."></span>
就足够了。
不要忘记添加jquery.js
和moment.js
之前livestamp.js