如何格式化自xxx以来的时间,例如“4分钟前”,类似于Stack Exchange站点
2022-08-29 23:59:38
问题是如何将JavaScript格式化为字符串,说明经过的时间,类似于您在Stack Overflow上看到时间显示的方式。Date
例如:
- 1分钟前
- 1小时前
- 11小时前
- 1 个月 前
- 1 年 前
问题是如何将JavaScript格式化为字符串,说明经过的时间,类似于您在Stack Overflow上看到时间显示的方式。Date
例如:
function timeSince(date) {
var seconds = Math.floor((new Date() - date) / 1000);
var interval = seconds / 31536000;
if (interval > 1) {
return Math.floor(interval) + " years";
}
interval = seconds / 2592000;
if (interval > 1) {
return Math.floor(interval) + " months";
}
interval = seconds / 86400;
if (interval > 1) {
return Math.floor(interval) + " days";
}
interval = seconds / 3600;
if (interval > 1) {
return Math.floor(interval) + " hours";
}
interval = seconds / 60;
if (interval > 1) {
return Math.floor(interval) + " minutes";
}
return Math.floor(seconds) + " seconds";
}
var aDay = 24*60*60*1000;
console.log(timeSince(new Date(Date.now()-aDay)));
console.log(timeSince(new Date(Date.now()-aDay*2)));
在这种情况下,这可能是一个过度的杀戮,但如果机会显示时刻.js真是太棒了!
Moment.js是一个javascript日期时间库,要将其用于这种情况,您需要执行以下操作:
moment(yourdate).fromNow()
http://momentjs.com/docs/#/displaying/fromnow/
2018年附录:Luxon是一个新的现代图书馆,可能值得一看!