时间戳转换为时间格式和几天前、级分钟前等,倒计时

1.正常时间格式:2020-10-10 08:56:28

2.时间格式转时间戳:new Date('2020-10-10 08:56:28').getTime()

3.时间戳转时间格式:

dateTime(now) {
      var date = new Date(now * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
      var Y = date.getFullYear() + '-';
      var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
      var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
      var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
      var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
      var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
      return Y + M + D + h + m + s;
    }
//在需要用到的时候调用,传参是需要转换的时间戳

4.秒转换成时间

formatSeconds(value) {
    var theTime = parseInt(value);// 秒
    var middle= 0;// 分
    var hour= 0;// 小时
    if(theTime > 60) {
        middle= parseInt(theTime/60);
        theTime = parseInt(theTime%60);
        if(middle> 60) {
            hour= parseInt(middle/60);
            middle= parseInt(middle%60);
        }
    }
    var result = ""+parseInt(theTime)+"秒";
    if(middle > 0) {
        result = ""+parseInt(middle)+"分"+result;
    }
    if(hour> 0) {
        result = ""+parseInt(hour)+"小时"+result;
    }
    return result;
}

5.秒数转换倒计时:00:08:25

 // 时间转换
      formatBit(val) {
        val = +val;
        return val > 9 ? val : "0" + val;
      }, // 秒转时分秒,求模很重要,数字的下舍入
      formatSeconds(time) {
        let min = Math.floor(time % 3600);
        let val =
          this.formatBit(Math.floor(time / 3600)) +
          ":" +
          this.formatBit(Math.floor(min / 60)) +
          ":" +
          this.formatBit(time % 60);
        return val;
      }, // 定时器
      minReturn(time_limit) {
        //参数为秒*60,参数为分钟不需要
        let time = time_limit * 60;
        let t = setInterval(() => {
          time--;
          //定义全局变量 timeDown 作为在页面上展示
          //下面一行业可以更改为 return this.formatSeconds(time)  没尝试过
          this.timeDown = this.formatSeconds(time);
          if (time <= 0) {
            clearInterval(t);
          }
        }, 1000);
      },

6.时间戳转换为刚刚、XX分钟前、XX小时前、XX天前等等等

放在export default{}的外面然后在组件中通过过滤方式来进行调用

export function timeago(dateTimeStamp) {
    // dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。
    let minute = 1000 * 60;      //把分,时,天,周,半个月,一个月用毫秒表示
    let hour = minute * 60;
    let day = hour * 24;
    let week = day * 7;
    //var halfamonth = day * 15;
    let month = day * 30;
    let now = new Date().getTime();   //获取当前时间毫秒
    let diffValue = now - dateTimeStamp;//时间差
    if (diffValue < 0) { return; }
    let minC = diffValue / minute;  //计算时间差的分,时,天,周,月
    let hourC = diffValue / hour;
    let dayC = diffValue / day;
    let weekC = diffValue / week;
    let monthC = diffValue / month;
    let result
    if (monthC >= 1) {
        result = "" + parseInt(monthC) + "月前";
    }
    else if (weekC >= 1) {
        result = "" + parseInt(weekC) + "周前";
    }
    else if (dayC >= 1) {
        result = "" + parseInt(dayC) + "天前";
    }
    else if (hourC >= 1) {
        result = "" + parseInt(hourC) + "小时前";
    }
    else if (minC >= 1) {
        result = "" + parseInt(minC) + "分钟前";
    } else
        result = "刚刚";
    return result;
}

放在export default{}的里面

filters:{
     //调用 Timer 方法
    Timer: function(str) {
      //时间戳为10位数的需要*1000
       let times = Number(str) * 1000;
       return timeago(times);
    }
  },

在页面上使用

{{ item.create_time | Timer(item.create_time) }}

你可能感兴趣的:(时间戳转换为时间格式和几天前、级分钟前等,倒计时)