后台字符串日期转化为几小时前几天前

114 阅读1分钟

单独封装js

```function timeago(dateTimeStamp) {
    if (typeof dateTimeStamp == 'string') {
        dateTimeStamp = new Date(Date.parse(dateTimeStamp.replace(/-/g, "/")));
    }
    // dateTimeStamp是一个时间毫秒,注意时间戳是秒的形式,在这个毫秒的基础上除以1000,就是十位数的时间戳。13位数的都是时间毫秒。
    let minute = 1000 * 60; //把分,时,天,周,半个月,一个月用毫秒表示
    let hour = minute * 60;
    let day = hour * 24;
    let week = day * 7;
    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) + " months ago";
    } else if (weekC >= 1) {
        result = "" + parseInt(weekC) + " weeks ago";
    } else if (dayC >= 1) {
        result = "" + parseInt(dayC) + " days ago";
    } else if (hourC >= 1) {
        result = "" + parseInt(hourC) + " hours ago";
    } else if (minC >= 1) {
        result = "" + parseInt(minC) + " mins ago";
    } else result = "just";
    return result;
}
export default {
    timeago
}

组件引用
```js
```import time from '@/utils/time'
export default {
    methods: {
        timeago(dateTime) {
          return time.timeago(dateTime);
        },
    }
}

调用
<span>{{ timeago(item.created_at) }}</span>