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