// 导入momentjs
import moment from 'moment'
export default {
install: Vue => {
// 将日期格式化过滤器注册成全局
// 格式化到time
Vue.filter('formatTime', str => {
return moment(str).format('YYYY-MM-DD HH:mm:ss')
})
// 格式化到date
Vue.filter('formatDate', str => {
return moment(str).format('YYYY-MM-DD')
})
// 按时间戳格式化
Vue.filter('format', str => {
const diff = moment(str).diff(moment(), 'milliseconds')
const duration = moment.duration(diff)
const y = Math.abs(duration.years())
const m = Math.abs(duration.months())
const d = Math.abs(duration.days())
const h = Math.abs(duration.hours())
const mm = Math.abs(duration.minutes())
// const s = Math.abs(duration.seconds())
if (y >= 1) {
return `${y}年前`
} else if (m >= 1) {
return `${m}个月前`
} else if (d >= 1) {
return `${d}天前`
} else if (h >= 1) {
return `${h}小时前`
} else if (mm > 1) {
return `${mm}分钟前`
} else {
return '刚刚'
}
})
}
}
然后在main.js中导入注册就行了:
// 引入common
import common from '@/utils/common'
Vue.use(common)
这样就封装成全局过滤器了,每个地方都能直接使用过滤器,不用再写filter