我创建了以下代码来每分钟更新所有跨度的文本内容。页面上有许多这样的跨度,每分钟都需要更新:
<span data-unix="1372263005" class="time_ago">4 minutes ago</span>
代码如下:
window.setInterval(function(){
$(".time_ago").each(function(i, elem) {
var unix = $(elem).attr("data-unix")
var now = new Date().getTime();
now = parseInt(now) / 1000;
var amount = 0;
var difference = 0;
difference = parseInt(now) - parseInt(unix);
if (difference < 60)
{
$(elem).html('a few seconds ago');
}
else if (difference < 120)
{
$(elem).html('a minute ago');
}
else if (difference < 3600)
{
amount = Math.floor(difference / 60);
$(elem).html(amount + ' minutes ago');
}
else if (difference < 7200)
{
$(elem).html('an hour ago');
}
else if (difference < 86400)
{
amount = Math.floor(difference / 3600);
$(elem).html(amount + ' hours ago');
}
else if (difference < 172800)
{
$(elem).html('a day ago');
}
else if (difference < 2635200)
{
amount = Math.floor(difference / 86400);
$(elem).html(amount + ' days ago');
}
else if (difference < 5270400)
{
$(elem).html('a month ago');
}
else if (difference < 31622400)
{
amount = Math.floor(difference / 2635200);
$(elem).html(amount + ' months ago');
}
else if (difference < 63244800)
{
$(elem).html('a year ago');
}
else
{
amount = Math.floor(difference / 31622400);
$(elem).html(amount + ' years ago');
}
});
return false;
}, 60);
EDIT1)好的,现在我对您的建议进行了一些更改,但它将跨度文本更改为 43351 年。有什么想法为什么要这样做?
EDIT2) 好的,现在我有 /1000 以便 php unix 时间与 js getTime() 匹配。唯一的问题是它现在将它应用于所有值。即)我为 .time_ago 的所有实例获得 31 分钟 - 我如何让它一次仅适用于一个实例,以便我为每个实例获得不同的时间?
EDIT3)添加了正确的代码,以防有人发现它有用..