jQuery Time Ago与Twitter插件

时间:2010-09-15 13:07:13

标签: javascript jquery twitter

我在某个论坛上发现了这个功能,我正在使用Tweetable在我的网站上显示我的最后一条推文。不幸的是,它没有正确地抓住时间。第一个小时,它说“不到一分钟前”,然后几个小时后,它变为“不到一个小时前”,然后两天过去,它变为“不到一天前”。我敢肯定它在计算中是愚蠢的。

function relTime(time_value) {
         time_value = time_value.replace(/(\+[0-9]{4}\s)/ig,"");
         var parsed_date = Date.parse(time_value);
         var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
         var timeago = parseInt((relative_to.getTime() - parsed_date) / 1000);
         if (timeago < 60) return 'less than a minute ago';
         else if(timeago < 120) return 'about a minute ago';
         else if(timeago < (45*60)) return (parseInt(timeago / 60)).toString() + ' minutes ago';
         else if(timeago < (90*60)) return 'about an hour ago';
         else if(timeago < (24*60*60)) return 'about ' + (parseInt(timeago / 3600)).toString() + ' hours ago';
         else if(timeago < (48*60*60)) return '1 day ago';
              else return (parseInt(timeago / 86400)).toString() + ' days ago';
         }

然后就像这样把它放进帖子:

if (defaults.time == true)
   $('li#tweet-'+i).append('<p class="created-date">'+relTime(item.created_at)+'</p>');

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我使用jQuery timeago plugin来实现你在这里所做的事情,它确实非常有效。

你试过吗?你有推动自己的理由吗?至少,您可以参考他们的来源。

你这样使用插件:

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

然后是一些脚本:

$().ready(function() { $("abbr.timeago").timeago(); });

哦,当然你必须导入插件:

<script src="jquery.timeago.js" type="text/javascript"></script>

答案 1 :(得分:0)

这是在本地工作。 item.created_at是什么样的?它在什么时区?时区是否可能关闭? (即,服务器返回UTC的时间,客户端是否在EST?)