时间格式的转化以及时间戳转为多久之前)
1.时间戳转为指定格式
function timeFormat(dateTime = null, fmt = 'yyyy-mm-dd') {
if (!dateTime) dateTime = Number(new Date())
if (dateTime.toString().length === 10) dateTime *= 1000
let date = new Date(Number(dateTime))
let ret
let opt = {
'y+': date.getFullYear().toString(),
'm+': (date.getMonth() + 1).toString(),
'd+': date.getDate().toString(),
'h+': date.getHours().toString(),
'M+': date.getMinutes().toString(),
's+': date.getSeconds().toString()
}
for (let k in opt) {
ret = new RegExp('(' + k + ')').exec(fmt)
if (ret) {
fmt = fmt.replace(ret[1], ret[1].length === 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'))
}
}
return fmt
}
2.时间戳转为多久以前
function timeAgo(dateTime = null) {
if (!dateTime) dateTime = Number(new Date())
if (dateTime.toString().length === 10) dateTime *= 1000
let timestamp = +new Date(Number(dateTime))
let timer = (Number(new Date()) - timestamp) / 1000
let tips = ''
switch (true) {
case timer < 60:
tips = '刚刚'
break
case timer >= 60 && timer < 3600:
tips = parseInt(timer / 60) + '分钟前'
break
case timer >= 3600 && timer < 86400:
tips = parseInt(timer / 3600) + '小时前'
break
case timer >= 86400 && timer < 2592000:
tips = parseInt(timer / 86400) + '天前'
break
default:
if (timer >= 2592000 && timer < 365 * 86400) {
tips = parseInt(timer / (86400 * 30)) + '个月前'
} else {
tips = parseInt(timer / (86400 * 365)) + '年前'
}
}
return tips
}