cloudroam
7 天以前 c31a8def0ac90d86b8e8e345441bd28002a9ef2f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// 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 '刚刚'
  }