// utils/time.ts
|
|
export function formatRelativeTime(inputTime: string | Date): string {
|
const now = new Date()
|
|
// 如果是字符串格式,先进行兼容性处理
|
let time: Date
|
if (typeof inputTime === 'string') {
|
// 替换中间的空格为 'T' 或替换 '-' 为 '/'
|
const compatibleStr = inputTime.replace(/-/g, '/')
|
time = new Date(compatibleStr)
|
} else {
|
time = inputTime
|
}
|
|
const diffMs = now.getTime() - time.getTime()
|
|
const minutes = Math.floor(diffMs / (1000 * 60))
|
const hours = Math.floor(minutes / 60)
|
const days = Math.floor(hours / 24)
|
const months = Math.floor(days / 30)
|
const years = Math.floor(days / 365)
|
|
if (years > 0) return `${years} 年前`
|
if (months > 0) return `${months} 个月前`
|
if (days > 0) return `${days} 天前`
|
if (hours > 0) return `${hours} 小时前`
|
if (minutes > 0) return `${minutes} 分钟前`
|
return '刚刚'
|
}
|
|
export function formatRelativeTime2(inputTime: string | Date): string {
|
const now = new Date()
|
const time = typeof inputTime === 'string' ? new Date(inputTime) : inputTime
|
const diffMs = now.getTime() - time.getTime()
|
|
const minutes = Math.floor(diffMs / (1000 * 60))
|
const hours = Math.floor(minutes / 60)
|
const days = Math.floor(hours / 24)
|
const months = Math.floor(days / 30)
|
const years = Math.floor(days / 365)
|
|
if (years > 0) return `${years} 年前`
|
if (months > 0) return `${months} 个月前`
|
if (days > 0) return `${days} 天前`
|
if (hours > 0) return `${hours} 小时前`
|
if (minutes > 0) return `${minutes} 分钟前`
|
return '刚刚'
|
}
|
|