js某时间戳距离当前时间转化成几分钟前几天前几月前几年前

一. 效果

刚刚,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 '刚刚'
    }
}

 

你可能感兴趣的:(javascript)