js N秒前,N分钟前,N小时前,N天前,N月前

//注意:
//我对原方法做了稍微改动,之前参数是时间戳,我改成了时间
//然后在下面又转换成了时间戳,因为我数据库返回的就是时间
    timeago(dateTime) {
      //dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。
      var minute = 1000 * 60 //把分,时,天,周,半个月,一个月用毫秒表示
      var hour = minute * 60
      var day = hour * 24
      var week = day * 7
      var halfamonth = day * 15
      var month = day * 30
      var now = new Date().getTime() //获取当前时间毫秒
      var dateTimeStamp = new Date(dateTime)
      var diffValue = now - dateTimeStamp //时间差

      if (diffValue < 0) {
        return
      }
      var minC = diffValue / minute //计算时间差的分,时,天,周,月
      var hourC = diffValue / hour
      var dayC = diffValue / day
      var weekC = diffValue / week
      var monthC = diffValue / month
      var result = ''
      if (monthC >= 1 && monthC <= 3) {
        result = ' ' + parseInt(monthC) + '月前'
      } else if (weekC >= 1 && weekC <= 3) {
        result = ' ' + parseInt(weekC) + '周前'
      } else if (dayC >= 1 && dayC <= 6) {
        result = ' ' + parseInt(dayC) + '天前'
      } else if (hourC >= 1 && hourC <= 23) {
        result = ' ' + parseInt(hourC) + '小时前'
      } else if (minC >= 1 && minC <= 59) {
        result = ' ' + parseInt(minC) + '分钟前'
      } else if (diffValue >= 0 && diffValue <= minute) {
        result = '刚刚'
      } else {
        var datetime = new Date()
        datetime.setTime(dateTimeStamp)
        var Nyear = datetime.getFullYear()
        var Nmonth =
          datetime.getMonth() + 1 < 10
            ? '0' + (datetime.getMonth() + 1)
            : datetime.getMonth() + 1
        var Ndate =
          datetime.getDate() < 10
            ? '0' + datetime.getDate()
            : datetime.getDate()
        var Nhour =
          datetime.getHours() < 10
            ? '0' + datetime.getHours()
            : datetime.getHours()
        var Nminute =
          datetime.getMinutes() < 10
            ? '0' + datetime.getMinutes()
            : datetime.getMinutes()
        var Nsecond =
          datetime.getSeconds() < 10
            ? '0' + datetime.getSeconds()
            : datetime.getSeconds()
        result = Nyear + '-' + Nmonth + '-' + Ndate
      }
      return result
    },

代码来自互联网

posted @ 2020-01-14 20:54  屌丝大叔的笔记  阅读(335)  评论(0编辑  收藏  举报