date
包含有效日期的 Date 对象。
签名
ts
function date(msg?: Message): Schema<Date>参数
| 参数 | 类型 | 说明 |
|---|---|---|
msg | Message | 自定义信息。替换该 Schema 所有错误的默认信息 |
接受的值
getTime() 不为 NaN 的 Date 实例。new Date('abc') 不会通过。
undefined、null 和 '' 都被视为空值 —— 详见 空值。
错误代码
| 代码 | 触发条件 | 默认信息 |
|---|---|---|
required | 值为空 | Required |
date | 不是 Date 或日期无效 | Must be a valid date |
可以修改这些文本:见 错误信息与国际化。
来自 JSON 的日期
JSON 没有日期类型 —— 客户端发送的日期是字符串("2026-10-02")。请使用 coerce.date,它会从字符串或数字创建 Date。
示例
时间段
ts
const Period = object({
from: coerce.date(),
to: pipe(coerce.date(), check((v, { parent }) => v >= new Date(parent.from), '结束时间早于开始时间')),
});
validate(Period, { from: '2026-01-10', to: '2026-01-01' }).errors; // { to: '结束时间早于开始时间' }另请参阅
- coerce.date:从字符串获取日期
- check:比较日期