js实现用户评论时间与当前时间对比,显示"n分钟前","n小时前",以及具体日期的效果
这里需要用到moment.js插件
官网:Moment.js 中文网 (momentjs.cn)
我这里将插件的实例挂载到了this.$moment上
let initTime = e.createTime // 格式 2022-12-12 12:30:51
// let a = this.$moment().diff(this.$moment('2023/1/5 20:15:00'));
let a = this.$moment().diff(this.$moment(e.createTime));
// 只换算到小时
const T = ['秒', '分钟', '小时']
const t = [1000, 60, 60]
console.log('换算前', a)
for (var i = 0; i < t.length; i++) {
if (parseInt(a/t[i])) {
a = parseInt(a/t[i])
e.createTime = a + T[i] + '前'
// 创建日期与当前日期进行对比,相差小于一天则显示n分钟前,n小时前,大于一天直接显示日期
if(T[i] == "小时" && a > 24) {
e.createTime = initTime.split(' ')[0]
}
}
}
console.log('换算后', e.createTime)