实际问题 我正在使用momentjs和以下代码来验证日期格式
date = moment(dateVal, fmt);
如果format是YYYY-MM-DD,并且如果dateVal是2017-04,则日期值不会变为null。时刻功能是将2017-04-01作为日期返回而不是"无效日期"或者为null。如何更改代码以显示无效日期。
我试过这个
date = moment(dateVal, fmt, true);
但由于某种原因,当我使用它时,即使我发送有效的日期和格式,isValid仍然是假的。例如,格式为MM / DD / YYYY的1/4/2017给出错误,日期=时刻(dateVal,fmt,true)
这是我的代码
var CustomDateValidate = function (dateVal, fmt) {
var date = null;
if (dateVal !== null && dateVal !== undefined) {
fmt = defaultFor(fmt, getHiddenData().dateFormatJavascriptMoment); // here for en the fmt will be "MM/DD/YYYY" and for fr the fmt will be "YYYY-MM-DD"
date = moment(dateVal, fmt, true);
if (!(date.isValid())) {
date = null;
}
//else
if (date.year().toString().length < 4) {
date = null;
} else if (date.toString().toLowerCase() === 'invalid date') {
date = null;
} else if (date._i.toString().length > 10) {
date = null;
}
}
return date;
帮助。