Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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
Javascript 如何验证字符串在js中是否为有效日期_Javascript_Momentjs - Fatal编程技术网

Javascript 如何验证字符串在js中是否为有效日期

Javascript 如何验证字符串在js中是否为有效日期,javascript,momentjs,Javascript,Momentjs,我有一个字符串字段,用于获取不同的值。收到的一些值是日期。现在我需要检查收到的值是否为date?收到的日期也可以采用不同的格式 我尝试了Date.parse(),如果格式是dd-mm-yyyy-hh:mm,它可以工作,但是我收到了一些类似的日期(26/05/2015 06:20:57+00:00) 如何比较字符串是否为有效日期?如果date.parse()对您来说还不够-但可能足够-请参阅以下文档: 那么你可以试试: 它是一个用JavaScript解析、验证、操作和显示日期的库,具有

我有一个字符串字段,用于获取不同的值。收到的一些值是日期。现在我需要检查收到的值是否为date?收到的日期也可以采用不同的格式

我尝试了
Date.parse()
,如果格式是
dd-mm-yyyy-hh:mm
,它可以工作,但是我收到了一些类似的日期(
26/05/2015 06:20:57+00:00

如何比较字符串是否为有效日期?

如果
date.parse()
对您来说还不够-但可能足够-请参阅以下文档:

那么你可以试试:

它是一个用JavaScript解析、验证、操作和显示日期的库,具有比标准JavaScript日期处理函数更丰富的API


有关更多库和教程链接,请参见。

尝试查看moment.js(),它是一个非常强大的日期库。您可以尝试使用任何值创建一个日期,然后检查它是否有效。这可能是重复的,但链接的重复项的答案大多很差,只依赖于date.parse,这对于随机格式来说是非常不可靠的。正确解析日期字符串至关重要,您可以告诉解析器它是什么格式(或者提供一种您知道它将正确解析的格式)。否则,您可以尝试一系列不同的格式,并在得到一种“有效”的格式时停止。当年份是第一年时,你可以合理地确定y-m-d序列,但当年份是最后一年时,不合逻辑的m/d/y序列的普遍性意味着你无法可靠地判断2010年5月4日是5月4日还是4月5日。@RobG说得好。我在链接的dupe中添加了一些新信息。谢谢。使用moment.js有帮助。我可以解析字符串以匹配任何格式我想要.moment.js仅用于验证字符串看起来不正确。是否有纯JavaScript解决方案可用?
Date.parse()
不应使用,因为它将接受任何带有数字的字符串作为有效日期-请检查注释。@ocramot是的,您是对的,另请参阅我在何处对其进行的详细解释。