Skip to content

timeAgo

将日期转换为相对时间描述

语言设置

时间预设

原始时间

2025/12/9 09:39:15

相对时间

1天前
自动更新中...

函数签名

typescript
function timeAgo(
  date: Date | number | string,
  locale?: 'zh' | 'en'
): string

参数

参数名类型必填说明
dateDate | number | string日期对象、时间戳或日期字符串
locale'zh' | 'en'语言设置,默认为 'zh'

返回值

类型说明
string相对时间描述

异常

错误类型触发条件错误信息
Error无效的日期'Invalid date'

工作原理

  1. 将输入转换为 Date 对象并验证
  2. 计算当前时间与目标时间的差值
  3. 根据时间差选择合适的单位(秒、分钟、小时、天、月、年)
  4. 根据语言设置返回相应的描述文本
  5. 对于小于10秒的差值,显示"刚刚"

时间范围对照表

时间差中文英文
< 10秒刚刚just now
< 1分钟N秒前N second(s) ago
< 1小时N分钟前N minute(s) ago
< 1天N小时前N hour(s) ago
< 30天N天前N day(s) ago
< 365天N个月前N month(s) ago
≥ 365天N年前N year(s) ago

使用示例

中文格式

typescript
const now = Date.now()

timeAgo(now - 30000)
// '30秒前'

timeAgo(now - 3600000)
// '1小时前'

timeAgo(now - 86400000)
// '1天前'

英文格式

typescript
const now = Date.now()

timeAgo(now - 30000, 'en')
// '30 seconds ago'

timeAgo(now - 3600000, 'en')
// '1 hour ago'

timeAgo(now - 172800000, 'en')
// '2 days ago'