需求背景:在做社区项目的时候,发文章/评论的时间展示为:小于1分钟为刚刚,大于1分钟&&小于1小时,显示xx分钟,小于24小时,展示为xx小时前,大于24小时&&小于1天,显示为昨天xx:xx;
解决方案:moment结合vue的filters
步骤:
1.下载moment
下载指令:npm install moment
2.新建一个moment.js文件,将以下内容放置该文件中(根据需求做相应调整)
import moment from 'moment'
moment().constructor.prototype.fromNow = function (type = 1) {
let isSameYear = this.isSame(new Date(), 'year');
let isSameDay = this.isSame(new Date(), 'day');
switch (type) {
case 1: // 社区详情页
if (!isSameYear) {
return this.format('YY/MM/DD HH:mm');
}
if (!isSameDay) {
return this.format('MM/DD HH:mm');
}
if (isSameDay) {
return this.format('HH:mm');
}
break;
case 2: //帖子列表
let diffM =