更新记录
1.0.0(2026-08-26)
下载此版本
- 初始版本(基于 dayjs)
formatRelativeTime(value) —— 相对时间:刚刚(≤5分钟)/ xx分钟前(≤30分钟)/ 今日 xx:xx / x月x日 xx:xx / xxxx年x月x日 xx:xx
formatAbsoluteTime(value) —— 绝对时间:今日 xx:xx / x月x日 xx:xx / xxxx年x月x日 xx:xx
- 空/非法输入统一返回空串;未来时间相对版显示「刚刚」
- 依赖 dayjs ^1.11(宿主安装)
平台兼容性
uni-app(5.24)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| - |
√ |
√ |
√ |
√ |
- |
√ |
√ |
√ |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
√ |
√ |
√ |
√ |
√ |
- |
√ |
√ |
√ |
- |
- |
uni-app x(5.24)
| Chrome |
Safari |
Android |
iOS |
鸿蒙 |
微信小程序 |
| - |
- |
- |
- |
- |
- |
wc-time
基于 dayjs 的展示层时间工具(中文场景)。纯函数、无状态、不发请求。
安装前置
- 宿主项目安装 npm 依赖
dayjs(本模块仅在 package.json 声明,安装动作由宿主完成):
pnpm add dayjs
使用
小程序端请注意:直接从具体模块导入(.../wc-time/commons/time)。
mp-weixin 编译器会把纯 re-export 的 index.ts 编译成空模块。
import { formatRelativeTime, formatAbsoluteTime } from '@/uni_modules/wc-time/commons/time'
相对时间:formatRelativeTime(信息流、动态时间轴)
阶梯规则:
| 距当前 |
输出 |
| ≤ 5 分钟(含未来) |
刚刚 |
| ≤ 30 分钟 |
xx分钟前 |
| 今日(自然日) |
今日 xx:xx |
| 今年 |
x月x日 xx:xx |
| 往年 |
xxxx年x月x日 xx:xx |
formatRelativeTime('2026-08-24 14:00:00') // 视当前时间而定
formatRelativeTime(publishTime) // 列表发布时间最常用
绝对时间:formatAbsoluteTime(截止时间、预约时间等明确时点)
与相对版共用「今日 / 今年 / 往年」分段,但无相对前缀:
| 距当前 |
输出 |
| 今日 |
xx:xx |
| 今年 |
x月x日 xx:xx |
| 往年 |
xxxx年x月x日 xx:xx |
`截止 ${formatAbsoluteTime(closeAt)}` // 截止 21:00 / 截止 8月30日 21:00
行为约定
| 项 |
说明 |
| 入参 |
string | number | Date;server 的 Y-m-d H:i:s 字符串可直接解析 |
| 空值 / 非法值 |
返回 ''(调用方按需兜底) |
| 未来时间 |
相对版返回 刚刚;绝对版正常分段显示 |
| 时区 |
按设备本地时间(dayjs 默认行为) |
范围说明
刻意不包含(保持简单):
- 时间戳 ↔ 字符串的通用 format(直接用导出的
dayjs 自己格式化)
- 从现在起的多语言/多 locale 配置(当前仅中文场景)
- 倒计时、时长(duration)类需求(出现时另行封装)