useFormat
提供一些常用的格式化数据的方法。
formatTime
格式化时间的显示格式。
- Supported Platforms:
Browser | Electron | App | Server | Scriptlet |
- Type Declarations:
ts
declare function formatTime(
/**
* 要用于格式化的时间
*/
time: Date | number,
/**
* 要转换的格式
* @tips 格式更规范化,例如必须是 `yyyy-MM-dd` 而不是 `YYYY-MM-DD`
* @see https://github.com/date-fns/date-fns/blob/main/docs/unicodeTokens.md
*/
format: string
): string
- Example:
ts
import { useFormat } from '@lunarxyz/core'
const { formatTime } = useFormat()
const now = Date.now()
console.log(formatTime(now, 'yyyy-MM-dd')) // 2022-08-14
console.log(formatTime(now, 'yyyy-MM-dd hh:mm:ss')) // 2022-08-14 05:14:45
console.log(formatTime(now, 'yyyy-MM-dd HH:mm:ss')) // 2022-08-14 17:14:45
console.log(formatTime(now, 'yyyy/MM/dd')) // 2022/08/14
console.log(formatTime(now, 'yyyy年MM月dd日')) // 2022年08月14日
timeAgo
计算指定的时间到现在的相对时间。
TIP
如果传入的时间超过当前时间,则返回一个空字符串 ''
。
- Supported Platforms:
Browser | Electron | App | Server | Scriptlet |
- Type Declarations:
ts
declare function timeAgo(
/**
* 要用于计算的时间
*/
time: Date | number
): string
- Example:
ts
import { useFormat } from '@lunarxyz/core'
const { timeAgo } = useFormat()
// 传入当前时间戳
console.log(timeAgo(Date.now())) // 不到 1 分钟前
// 传入某一日期的时间戳
console.log(timeAgo(+new Date('2022-08-01'))) // 13 天前
// 传入一个日期
console.log(timeAgo(new Date('2022-08-01'))) // 13 天前
timeDistance
计算两个时间的相对时间距离(支持任意两个时间的对比)。
- Supported Platforms:
Browser | Electron | App | Server | Scriptlet |
- Type Declarations:
ts
declare function timeDistance(
/**
* 要用于计算的时间
*/
time: Date | number,
/**
* 用来对比的基线时间
*/
baseTime: Date | number
): string
- Example:
ts
import { useFormat } from '@lunarxyz/core'
const { timeDistance } = useFormat()
// 基线时间比当前时间小
console.log(timeDistance(Date.now(), +new Date('2022-08-01'))) // 13 天内
// 基线时间比当前时间大
console.log(timeDistance(+new Date('2022-08-01'), Date.now())) // 13 天前
// 任意两个时间对比
console.log(timeDistance(new Date('2022-08-01'), new Date('2022-08-10'))) // 9 天前
formatVideoDuration
格式化视频播放时长,可以把秒数转换为 00:00:00
这样的播放时长格式。
- Supported Platforms:
Browser | Electron | App | Server | Scriptlet |
- Type Declarations:
ts
declare function formatVideoDuration(
/**
* 总秒数
*/
seconds: number
): string
- Example:
ts
import { useFormat } from '@lunarxyz/core'
const { formatVideoDuration } = useFormat()
console.log(formatVideoDuration(10)) // 00:00:10
console.log(formatVideoDuration(100)) // 00:01:40
console.log(formatVideoDuration(1000)) // 00:16:40
console.log(formatVideoDuration(10000)) // 02:46:40
formatSN
格式化序列号,可将接口返回的数字序列表转换为 #001
的格式。
TIP
当传入负数或者超过 3 位数时会返回空值
- Supported Platforms:
Browser | Electron | App | Server | Scriptlet |
- Type Declarations:
ts
declare function formatSN(
/**
* 序列号
*/
sn: number
): string
- Example:
ts
import { useFormat } from '@lunarxyz/core'
const { formatSN } = useFormat()
console.log(formatSN(1)) // #001
console.log(formatSN(12)) // #012
console.log(formatSN(123)) // #123