export function timeago(time) {
var data = new Date(time)
var dateTimeStamp = data.getTime()
var minute = 1000 * 60// 把分,时,天,周,半个月,一个月用毫秒表示
var hour = minute * 60
var day = hour * 24
var week = day * 7
var month = day * 30
var year = month * 12
var now = new Date().getTime() // 获取当前时间毫秒
var diffValue = now - dateTimeStamp// 时间差
var result = ''
if (diffValue < 0) {
result = '' + '未来'
}
var minC = diffValue / minute // 计算时间差的分,时,天,周,月
var hourC = diffValue / hour
var dayC = diffValue / day
var weekC = diffValue / week
var monthC = diffValue / month
var yearC = diffValue / year
if (yearC >= 1) {
result = ' ' + parseInt(yearC) + '年前'
} else if (monthC >= 1 && monthC < 12) {
result = ' ' + parseInt(monthC) + '月前'
} else if (weekC >= 1 && weekC < 5 && dayC > 6 && monthC < 1) {
result = ' ' + parseInt(weekC) + '周前'
} else if (dayC >= 1 && dayC < 7) {
result = ' ' + parseInt(dayC) + '天前'
} else if (hourC >= 1 && hourC < 24) {
result = ' ' + parseInt(hourC) + '小时前'
} else if (minC >= 1 && minC < 60) {
result = ' ' + parseInt(minC) + '分钟前'
} else if (diffValue >= 0 && diffValue <= minute) {
result = '刚刚'
}
return result
}
// 日期格式化
export function parseTime(time, pattern) {
if (arguments.length === 0 || !time) {
return null
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
time = parseInt(time)
} else if (typeof time === 'string') {
time = time
.replace(new RegExp(/-/gm), '/')
.replace('T', ' ')
.replace(new RegExp(/\.[\d]{3}/gm), '')
}
if (typeof time === 'number' && time.toString().length === 10) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const timestr = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') {
return [ '日', '一', '二', '三', '四', '五', '六' ][value]
}
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return timestr
}
使用的时候直接导包
HTML部分
{{ dateFormatting(********) }}
JS部分
dateFormatting() {
return timeago(this.mobliePublishTime)
},