我正在尝试使用moment来验证表单上的日期输入,但是对于不存在的日期,例如2月30日,它将在月份上添加额外的日期,这意味着它将输出1980-03-01,而不是将日期作为1980-03-01并使日期无效
如何才能让它正确地验证日期?
const validateDate = (year, month, day) => {
let validationMessage;
const isNotEmpty = year && month && day;
const date = isNotEmpty && `${year}-${month}-${day}`;
const dateFormat = 'YYYY-MM-DD';
const toDateFormat = moment(new Date(date)).format(dateFormat);
const isDateValid = moment(toDateFormat, dateFormat, true).isValid();
const isYearValid = (year > 1900 && year < new Date().getFullYear());
if (!isDateValid) {
validationMessage = `invalid date`;
}
return {
isValid: isDateValid && isYearValid,
validationMessage,
};
};
export default {
validate: validateDate
};发布于 2020-06-01 19:26:53
const date = moment('2020-02-30', 'YYYY-MM-DD', true);
const isValid = date.isValid(); //false
const date = moment('2020-02-28', 'YYYY-MM-DD', true);
const isValid = date.isValid(); //truehttps://stackoverflow.com/questions/62131059
复制相似问题