我有一个页面,其中有很多帖子,显示它们发布的时间。我想每 1 分钟后继续更新该时间。一种简单的方法可以给它们一个相同的类,并在 1 分钟后获取所有元素并更新时间。有什么更好的解决方案。
您可以使用像这样的简单插件:
$.fn.UpdateSince = function(interval) {
var times = this.map(function(){ return { e: $(this), t: parseInt($(this).html()) }; });
var format = function(t) {
if (t > 60) {
return Math.floor(t / 60) + ' minutes ago'
} else {
return t + ' seconds ago';
}
}
var update = function(){
var now = new Date().getTime();
$.each(times, function(i, o){
o.e.html(format(Math.round((now - o.t) / 1000)));
});
};
window.setInterval(update, interval);
update();
return this;
}
它设置一个按一定时间间隔运行的函数并更新您指定的元素。这些元素最初包含整数格式的时间,即自 1970-01-01 以来的毫秒数:
<div class="TimeSince">1314952218779</div>
Usage:
$('.TimeSince').UpdateSince(1000);
该参数是更新间隔(以毫秒为单位)。1000
是每秒一次,因此如果您以分钟为单位显示时间,您将使用更大的值,例如每 20 秒一次,或者20 * 1000
.
您想要改进的部分是功能format
,它将秒转换为人类可读的格式。现在是几分钟和几秒钟前,但您可能想要几天、几小时或几分钟前的内容。
Demo: http://jsfiddle.net/Guffa/7EsAX/ http://jsfiddle.net/Guffa/7EsAX/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)