使用前
在使用时间日期(datetime)检验前,需要先设置值解析 parse 函数和格式化 format 函数。
- parse 用以将待校验值、设置的最大最小值解析为可比较的数字
- format 将可比较的数字解析为指定可读格式,用以显示在错误信息中
以下是使用 moment.js 库实现上述函数的一个例子,注入值是日期格式。
validate.extend(validate.validators.datetime, {
parse: function(value, options) {
// 将日期格式解析为毫秒时间戳
return +moment.utc(value);
},
format: function(value, options) {
// 将毫秒时间戳解析为指定日期格式
var format = options.dateOnly ? "YYYY-MM-DD" : "YYYY-MM-DD hh:mm:ss";
return moment.utc(value).format(format);
}
});
参数
| 参数名 | 说明 |
|---|---|
| earliest | 待校验日期不能早于给定值,格式需和待校验值相同,会使用 parse 函数解析 |
| latest | 待校验日期不能晚于给定值,格式需和待校验值相同,会使用 parse 函数解析 |
| dateOnly | 给定值只能是日期 |
使用
var constraints = {
birthday: {
datetime: {
dateOnly: true,
latest: moment.utc().subtract(18, 'years'),
message: "^You need to be at least 18 years old"
}
}
};
validate({birthday: "3013-11-14"}, constraints);
// => {"birthday": ["You need to be at least 18 years old"]}