如何使用 jQuery timeago 进行实时更新?

发布于 2024-11-04 21:05:20 字数 192 浏览 4 评论 0原文

我有一个值 011-04-29T14:55:33.000Z 该值被推送到 jQuery 模板中。我使用 timeago 将日期转换为经过的时间,但在写入模板后,它无法更新为更多的时间过去了。

我将如何实现自动更新的功能?

I have a value 011-04-29T14:55:33.000Z this value gets push into a jQuery template. I used timeago to convert the date to elapsed time but after being written to the template it has no way of updating as more time passes.

How would I implement something that would automatically update?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风柔一江水 2024-11-11 21:05:20

假设您从这个开始(来自 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')

Suppose you start with this (from the timeago homepage):

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

Now, the timeago plugin will change the title as it rewrites things. All you need to do is keep track of the timestamp elsewhere, put it back in the title attribute, and rerun the plugin. Something like this:

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

Will become this:

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

And when you want to update it, just put data-ts back in title and rerun the plugin:

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

If you're using an older jQuery, you might need to use $this.attr('data-ts') in place of $this.data('ts').

送君千里 2024-11-11 21:05:20

我尝试了上面的方法但没有成功,然后我发现了这个。可能会有帮助。

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

这里就足够了。

不要忘记在 livestamp.js 之前添加 jquery.jsmoment.js

I tried the above with no luck.and i found this. might be helpful.

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

Here <span data-livestamp="your time goes here..."></span> is enough.

Don't forget to add jquery.js and moment.js before livestamp.js

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文