一. 效果
刚刚,1秒前,1分钟前,1天前,1周前,4周前,1月前,1年前,2年前。
二. 展示逻辑
- 公式:n < 60秒,结果:n秒前
- 公式:1分钟 <= n < 60分钟,结果:n分钟前
- 公式:1天 <= n < 7天,结果:n天前
- 公式:7天 <= n < 7 *x,结果:x周前,注意7*x小于31
- 公式:31天 <= n < 31*x天,结果:x月前
- 公式:365天 <=n < 365 * x,结果:x年前
const getUpdateTime = function(updateTime) {
if (updateTime === null) {
return ''
}
let now = new Date().getTime()
let second = Math.floor((now - updateTime) / (1000))
let minute = Math.floor(second / 60)
let hour = Math.floor(minute / 60)
let day = Math.floor(hour / 24)
let month = Math.floor(day / 31)
let year = Math.floor(month / 12)
if (year > 0) {
return year + '年前'
} else if (month > 0) {
return month + '月前'
} else if (day > 0) {
let ret = day + '天前'
if (day >= 7 && day < 14) {
ret = '1周前'
} else if (day >= 14 && day < 21) {
ret = '2周前'
} else if (day >= 21 && day < 28) {
ret = '3周前'
} else if (day >= 28 && day < 31) {
ret = '4周前'
}
return ret
} else if (hour > 0) {
return hour + '小时前'
} else if (minute > 0) {
return minute + '分钟前'
} else if (second > 0) {
return second + '秒前'
} else {
return '刚刚'
}
}