2014-09-01 432 views
0

我有此腳本time.jsMoment.js總是給人 「幾秒鐘前」

function changeTime(){ 
    $('p.text-muted').each(function(index, el) { 
    $str = moment($(el).text()).fromNow(); 
    console.log($str); 
    $(el).html('<i class="fa fa-clock-o"></i> '+$str); 
    }); 
} 
changeTime(); 
setInterval(update, 1000*60); 

這是我打電話changeTime()的地方之一:

<p class="small text-muted" id="t<?php echo($tweet['tid']);?>"><i class="fa fa-clock-o"></i> <?php echo($tweet['ttime']); ?></p> 

changeTime()第一次被調用,值得到適當設置。但稍後,它會在「幾秒前」提供。

我知道在稍後的通話中,它變成了一個時刻('4天前')。 fromNow()變成「幾秒前」。那麼如何將此4 days ago轉換爲實際時間,然後再次致電.fromNow()?我找不到確切的方法。請幫忙。

謝謝:)

+0

please cr吃掉一個http://liveweave.com/,http://jsfiddle.net/等我們重現行爲 – 2014-09-01 07:16:23

+0

[這裏](http://jsfiddle.net/#&togetherjs=dvC1DQ4l9a)是這個jsfiddle題。 問題解決了...添加它,以便它可以幫助其他人... :) – techno 2014-09-01 09:09:04

回答

2

首先,有一個在您粘貼代碼setInterval(update, 1000*60);錯誤應該是setInterval(changeTime, 1000*60);

其次請保存時間戳的屬性,而不是DIV

<p class="small text-muted" id="t<?php echo($tweet['tid']);?>" data-timestamp="<?php echo($tweet['ttime']); ?>"><i class="fa fa-clock-o"></i> <?php echo($tweet['ttime']); ?></p> 

更新的JS代碼: -

function changeTime(){ 
    $('p.text-muted').each(function(index, el) { 
    $str = moment($(el).data('timestamp')).fromNow(); 
    console.log($str); 
    $(el).html('<i class="fa fa-clock-o"></i> '+$str); 
    }); 
} 
changeTime(); 
setInterval(changeTime, 1000*60); 
+0

yaa ..'更新'是別的..我粘貼錯誤..我的壞..謝謝.. .. :) – techno 2014-09-01 07:44:34