Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 法语格式的即时js问题_Date_Format_Momentjs - Fatal编程技术网

Date 法语格式的即时js问题

Date 法语格式的即时js问题,date,format,momentjs,Date,Format,Momentjs,实际发行: am使用momentjs和以下代码验证日期格式 date = moment(dateVal, fmt); 若格式为YYYY-MM-DD,若日期值为2017-04,则日期值不为空。矩函数将2017-04-01作为日期返回,而不是“无效日期”或null。如何暂时更改代码以显示无效日期 我试过这个 date = moment(dateVal, fmt, true); 但由于某种原因,当我使用这个时,isValid总是以false出现,即使我发送了有效的日期和格式。例如,格式为MM/DD

实际发行: am使用momentjs和以下代码验证日期格式

date = moment(dateVal, fmt);
若格式为YYYY-MM-DD,若日期值为2017-04,则日期值不为空。矩函数将2017-04-01作为日期返回,而不是“无效日期”或null。如何暂时更改代码以显示无效日期

我试过这个

date = moment(dateVal, fmt, true);
但由于某种原因,当我使用这个时,isValid总是以false出现,即使我发送了有效的日期和格式。例如,格式为MM/DD/YYYY的2017年1月4日给出了日期=时刻的错误(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;
var CustomDateValidate=函数(dateVal,fmt){
var-date=null;
if(dateVal!==null&&dateVal!==未定义){
fmt=defaultFor(fmt,getHiddenData().DateFormatJavaScript矩);//此处对于en,fmt将是“MM/DD/YYYY”,对于fr,fmt将是“YYYY-MM-DD”
日期=时刻(dateVal,fmt,true);
如果(!(date.isValid()){
日期=空;
}
//否则
如果(日期.年份().toString().length<4){
日期=空;
}else if(date.toString().toLowerCase()=“无效日期”){
日期=空;
}else if(date._i.toString().长度>10){
日期=空;
}
}
返回日期;

plz帮助。

您有什么问题?
date=moment(dateVal,fmt,true)“<代码>无效的日期<代码> > <代码> 2017 04> <代码> > YYYY-MM-DD < /代码>如预期。当我使用这个AM总是出错时,您指的是什么?请编辑您的问题,更好地解释您的问题,考虑添加一个片段或一个显示您的问题的小提琴。当我发送1/4/2017时,AM会出错,格式为MM/DD/YYYY W。当我使用date=moment(dateVal,fmt,true)格式时,字符串区分大小写。
mm
是分钟,
dd
是一周中某一天的缩写,
yyyy
不是有效的标记。您的意思是
mm/dd/yyyy
?请编辑您的问题,给出产生问题的代码,包括字符串值。