导入方式:
import dateUtils from '@/util/dateUtils.js';
// 注意你要记得返回dateUtils ,否则会报错
data() {
return {
dateUtils,
}
},
页面调用(这里我带入了三种类型是暂时可以的,如果有问题,欢迎评论区留言)
item.time可以等于“2020-08-10 18:29:24”或者
时间戳毫秒为单位的“1617930909000”或者
时间戳秒为单位的“1617930909”
<span>{{item.time ? dateUtils.fromCurrentTime(item.time) : ""}}</span>
// 这里运用了三元表达式,因为怕这个传入的值是空的,
// 你们可以不用就直接dateUtils.fromCurrentTime(item.time)也可以
工具类里面的fromCurrentTime方法
--------------------我是dateUtils.js文件--------------------
function fromCurrentTime(dateString) {
console.debug('dateString', dateString, (String(dateString)).length)
var timestamp1;
if ((String(dateString)).length > 12) {
//“2020-08-10 18:29:24”的字符长度是19,超过了,所以直接进入时间戳的处理里面
//判断时间戳是否为毫秒单位(不少于13位)或者字符串2020-08-10 18:29:24长度
timestamp1 = Date.parse(new Date(dateString));
} else {
// 时间戳单位是秒,所以需要*1000变成毫秒的单位
timestamp1 = parseInt(dateString) * 1000;
}
let date = new Date(timestamp1).getTime();
let currentDate = new Date().getTime();
let spaceTime = Math.abs(currentDate - date) / 1000; //把相差的毫秒数转换为秒数
if (spaceTime < 60) {
// 间隔时间小于1分钟,返回分钟数
return '刚刚';
}
if (spaceTime < 3600) {
// 间隔时间小于1小时,并且上面的条件都达不到, 返回分钟数
let time = parseInt(spaceTime / 60)
return time + '分钟前';
} else if (spaceTime < 86400) {
// 间隔时间小于1天,并且上面的条件都达不到,返回小时数
let time = parseInt(spaceTime / 60 / 60);
return time + '小时前';
} else if (spaceTime < 172800) {
// 间隔时间小于2天,并且上面的条件都达不到,返回昨天
let time = parseInt(spaceTime / 60 / 60 / 24);
return '昨天';
} else {
// 间隔时间大于2天,并且上面的条件都达不到,返回天数
let time = parseInt(spaceTime / 60 / 60 / 24);
return time + '天前';
}
}