与法国格式的时刻js问题

时间:2017-04-18 20:43:44

标签: date format momentjs

实际问题 我正在使用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;

帮助。

0 个答案:

没有答案
相关问题