时间工具 API
提供标准命名导出 format 与 getTimestamp,同时扩展 UTC/时区/毫秒/秒级时间戳等常用方法。
使用指引(做什么、何时用)
- 显示时间:
format(seconds)→ 页面上以YYYY-MM-DD HH:mm:ss展示 - 接口字段:
nowSeconds()/getUnixTimestamp()→ 与后端 Unix 秒对齐 - 倒计时展示:
formatDuration(ms)→HH:mm:ss或Xd HH:mm:ss - 相对时间:
relativeTime(from,to)→2m ago / in 1h,用于消息/动态流 - 当日起止:
startOfDay/endOfDay→ 计算本地时区当天区间,配合活动/统计 - 天数偏移:
addDays(seconds,n)→ 从某一天向后/前推算目标日期 - 固定时刻:
setTimeOfDay(seconds,h,m,s)→ 把任意秒设到某个时刻(本地时区) - 简化目标:
nextAt(offsetDays,h,m=0,s=0)→ 今天起第offsetDays天的h:m:s
js
import { format, getTimestamp, nowSeconds, formatDuration, startOfDay, addDays, relativeTime, setTimeOfDay, nextAt } from 'nex-lib'
format() // 当前格式化
getTimestamp(0) // 1970-01-01 毫秒
relativeTime(nowSeconds()-120, nowSeconds())
formatDuration(3700000)
const target = nextAt(3, 18) // 三天后的 18:00(本地时区)
setTimeOfDay(startOfDay(nowSeconds()), 9, 30) // 今天 09:30:00text
2m ago
01:01:40setTimeOfDay(seconds: number, hour: number, minute?: number, second?: number): number
- 功能:将任意秒时间戳设置到指定时刻(本地时区)
ts
import { setTimeOfDay, startOfDay } from 'nex-lib'
setTimeOfDay(startOfDay(), 18, 0, 0) // 今天 18:00nextAt(offsetDays: number, hour: number, minute?: number, second?: number): number
- 功能:从今天起偏移
offsetDays天后的指定时刻(本地时区)
ts
import { nextAt } from 'nex-lib'
nextAt(3, 18) // 三天后 18:00导入
ts
import { format, getTimestamp } from 'nex-lib';format(seconds?: number): string
- 功能:格式化为
YYYY-MM-DD HH:mm:ss - 参数:
seconds(可选,单位秒) - 返回:格式化后的字符串
ts
import { format } from 'nex-lib'
format(0)text
1970-01-01 00:00:00ts
format(); // 当前时间
format(1633072800); // 指定秒数getTimestamp(seconds?: number): number
- 功能:返回毫秒时间戳
- 参数:
seconds(可选,单位秒) - 返回:毫秒数
ts
import { getTimestamp } from 'nex-lib'
getTimestamp(0)text
0ts
getTimestamp(); // 当前毫秒时间戳
getTimestamp(1633072800); // 指定秒数对应的毫秒formatUTC(seconds?: number): string
- 功能:按 UTC 时区格式化
YYYY-MM-DD HH:mm:ss
ts
formatUTC(); // 当前时间(UTC)
formatUTC(0); // '1970-01-01 00:00:00'ts
import { formatUTC } from 'nex-lib'
formatUTC(0)text
1970-01-01 00:00:00getTimezone(): string
- 功能:获取当前 IANA 时区标识,例如
Asia/Shanghai
ts
import { getTimezone } from 'nex-lib'
getTimezone()text
Asia/Shanghai // 示例,实际取决于运行环境nowMs(): number
- 功能:当前毫秒时间戳(与
getTimestamp()等价,更具语义)
ts
import { nowMs } from 'nex-lib'
nowMs()text
1760000000000 // 示例值,实时变化nowSeconds(): number
- 功能:当前秒级时间戳(Unix 秒),常用于与后端接口对齐
ts
import { nowSeconds } from 'nex-lib'
nowSeconds()text
1760000000 // 示例值,实时变化getUnixTimestamp(seconds?: number): number
- 功能:返回 Unix 秒级时间戳;若传入
seconds则直接返回该值(取整)
ts
import { getUnixTimestamp } from 'nex-lib'
getUnixTimestamp(123.9)text
123getTimezoneOffsetMinutes(): number
- 功能:获取本地到 UTC 的分钟偏移(正负值),例如东八区为
-480
ts
import { getTimezoneOffsetMinutes } from 'nex-lib'
getTimezoneOffsetMinutes()text
-480 // Asia/Shanghai 示例getISO8601(seconds?: number): string
- 功能:返回
ISO 8601字符串,如2025-01-01T08:00:00.000Z
ts
import { getISO8601 } from 'nex-lib'
getISO8601(0)text
1970-01-01T00:00:00.000ZrelativeTime(fromSeconds: number, toSeconds?: number): string
- 功能:返回相对时间(英语),如
3d ago/in 2h
ts
import { relativeTime, nowSeconds } from 'nex-lib'
const now = nowSeconds()
relativeTime(now - 120, now)
relativeTime(now + 3600, now)text
2m ago
in 1hformatDuration(ms: number): string
- 功能:格式化时长,返回
HH:mm:ss或Xd HH:mm:ss
ts
import { formatDuration } from 'nex-lib'
formatDuration(65000)
formatDuration(3700000)
formatDuration(90000000)text
00:01:05
01:01:40
1d 01:00:00addDays(seconds: number, n: number): number
- 功能:指定时间(秒)向后/前偏移
n天,返回偏移后的秒级时间戳
startOfDay(seconds?: number): number
- 功能:返回本地时区的该日起始秒(00:00:00)
endOfDay(seconds?: number): number
- 功能:返回本地时区的该日结束秒(23:59:59)