我有一個值011-04-29T14:55:33.000Z
這個值被推入jQuery模板。我使用timeago將日期轉換爲已用時間,但在寫入模板之後,隨着時間的推移,它無法更新。如何使用jQuery timeago進行實時更新?
我該如何實現可自動更新的內容?
我有一個值011-04-29T14:55:33.000Z
這個值被推入jQuery模板。我使用timeago將日期轉換爲已用時間,但在寫入模板之後,隨着時間的推移,它無法更新。如何使用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')
。
我不確定OP是在詢問什麼,但我不得不使用'$('。timeago')。timeago('update',「2008-07-17T09:24:17Z」);'to改變它用來計算時間前的單詞的時間。 – 2013-04-17 02:28:04
@Nolan:過去兩年界面是否發生了變化?我認爲timeago使用'title'屬性來獲取原始時間戳,然後用元素的內容覆蓋它,因此'data-ts'屬性保持未刷新的時間戳的版本。我有點猜測在這裏,2011-04-30很久以前:) – 2013-04-17 03:00:50
是的,這就是它目前的工作方式,據我所知。但是,在元素初始化timeago之後設置'title' *不會改變參考時間。我相信它只會改變工具提示中顯示的內容,這是有道理的:標題包含工具提示文本,timeago將原始日期時間存儲在'element.data('timeago')'中。要獲取timeago來更改參考日期時間,可以在新的日期時間中使用「update」功能。 – 2013-04-17 04:58:51
我試過上面沒有運氣,我發現這個。可能會有所幫助。
https://mattbradley.github.io/livestampjs/
這裏<span data-livestamp="your time goes here..."></span>
就足夠了。
不要忘記livestamp.js
之前添加
jquery.js
和moment.js
您可以張貼在jsfiddle.net你的代碼,並提供有關你要完成的一點點更多信息? – 2011-04-30 05:26:12