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
Validation 使用MomentJS验证日期格式(不是日期字符串)?_Validation_Date_Datetime_Format_Momentjs - Fatal编程技术网

Validation 使用MomentJS验证日期格式(不是日期字符串)?

Validation 使用MomentJS验证日期格式(不是日期字符串)?,validation,date,datetime,format,momentjs,Validation,Date,Datetime,Format,Momentjs,我知道可以使用“.isValid()”函数检查给定字符串是否为日期格式: moment('2007-05-05', 'YYYY-MM-DD', true).isValid() 但是有没有办法确认格式是正确的呢?例如: 'YYYY-MM-DD'应返回true,但 'YYYY-MM-ddsaddl'应返回false,因为字符串末尾的字符不是有效的日期时间字符 我们正在开发一个工具,允许用户输入一个现有的日期格式,然后再输入第二个输入以输入所需的格式,但我们需要验证以确保字符串可以正确解析和转换,但

我知道可以使用“.isValid()”函数检查给定字符串是否为日期格式:

moment('2007-05-05', 'YYYY-MM-DD', true).isValid()
但是有没有办法确认格式是正确的呢?例如:

'YYYY-MM-DD'
应返回
true
,但

'YYYY-MM-ddsaddl'
应返回
false
,因为字符串末尾的字符不是有效的日期时间字符

我们正在开发一个工具,允许用户输入一个现有的日期格式,然后再输入第二个输入以输入所需的格式,但我们需要验证以确保字符串可以正确解析和转换,但他们没有输入特定的日期


应用程序必须接受任何和所有可能的日期格式。

使用以下功能验证您的格式

validFormat = function(inputFormat){
  var validation = moment(moment('2017-06-17').format(inputFormat), inputFormat).inspect(); 
  if(validation.indexOf('invalid') < 0) 
    return true; 
  else 
    return false;
}
const getIsValid=inputFormat=>矩(矩().format(inputFormat),inputFormat.isValid()
说明:

moment().format(inputFormat)
-使用该格式从当前时间创建日期字符串


然后用
moment()
将该字符串包装为
moment
date对象,定义解析该字符串的格式。最后,我们调用该
moment
date对象的
isValid()
属性。这确保了我们能够使用自定义格式创建和解析
时刻。

感谢您的帮助!这似乎奏效了。我一定会仔细阅读,我一定要确保我掌握了这个函数的功能。对于会议,它总是返回
false
弃用警告:对于有效的日期格式,如“DD/MM/YYYY”,它也会发出弃用警告考虑到
时刻
不再积极开发,我无法想象会有什么麻烦。我也非常确定我们在应用程序中使用的正是这个解决方案,我想不起来看到过任何弃用警告。您看到的警告是什么?实际上我们修复了一个bug,所以我更新了答案以包含该修复。这确实抑制了弃用警告!并适用于包括文字在内的复杂格式。
validFormat('YYYY MM DD')