我想以人类友好的格式显示一些相对于当前日期的日期。
人类友好的相对日期的示例:
- 10 秒前
- 20 分钟后
- 1天前
- 5 周前
- 2个月前
基本上忠实地保留了最高数量级(并且优选地,仅在通过其中 2 个单位时才上调单位 - 5 周而不是 1 个月)。
尽管我可以忍受一个控制较少、约会更友好的图书馆,例如:
- 昨天
- tomorrow
- 上星期
- 几分钟前
- 几个小时后
有这方面的流行库吗?
自从我写了这个答案以来,一个众所周知的可用库是moment.js.
有可用的库,但是自己实现它是微不足道的。只需使用一些条件即可。
Assume date
是一个实例化的Date
您想要进行比较的时间对象。
// Make a fuzzy time
var delta = Math.round((+new Date - date) / 1000);
var minute = 60,
hour = minute * 60,
day = hour * 24,
week = day * 7;
var fuzzy;
if (delta < 30) {
fuzzy = 'just then.';
} else if (delta < minute) {
fuzzy = delta + ' seconds ago.';
} else if (delta < 2 * minute) {
fuzzy = 'a minute ago.'
} else if (delta < hour) {
fuzzy = Math.floor(delta / minute) + ' minutes ago.';
} else if (Math.floor(delta / hour) == 1) {
fuzzy = '1 hour ago.'
} else if (delta < day) {
fuzzy = Math.floor(delta / hour) + ' hours ago.';
} else if (delta < day * 2) {
fuzzy = 'yesterday';
}
您需要对此进行调整以处理未来的日期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)