---
url: /utils/format.md
---
# 格式化工具

B 端高频格式化函数，与组件零耦合，可独立引入：

```js
import { formatNumber, formatFileSize } from '@wil-works/evoke-business-ui'
```

## formatNumber — 数字千分位

## formatFileSize — 文件大小

## formatDate — 日期模板

模板令牌：`YYYY MM DD HH mm ss SSS`：

## formatRelativeTime — 相对时间

消息流、操作日志、评论区的标准展示：

## formatDuration / formatPercent

## API

```ts
formatNumber(value: number, options?: {
  precision?: number          // 小数位
  separator?: string          // 千分位符号，默认 ','；传 '' 关闭
  decimalSeparator?: string   // 小数点符号，默认 '.'
}): string

formatFileSize(bytes: number, options?: {
  precision?: number          // 默认 1
  base?: 1024 | 1000         // 默认 1024
}): string                   // 非法输入返回 ''

formatDate(date: Date | number | string, pattern?: string): string

formatRelativeTime(date: Date | number | string, now?: Date | number): string

formatDuration(seconds: number, options?: { forceHours?: boolean }): string

formatPercent(ratio: number, options?: { precision?: number }): string
```

所有函数对非法输入**不抛错**：数字类返回 `String(value)` 或 `''`，日期类返回 `''`，可直接用于模板插值。
