【发布时间】:2015-06-15 13:24:10
【问题描述】:
我有用于获取不同值的字符串字段。收到的一些值是日期。现在我需要检查收到的值是否是日期?收到的日期可以再次采用不同的格式。
我尝试了Date.parse(),如果格式为dd-mm-yyyy hh:mm,它可以工作,但我收到了一些类似(26/05/2015 06:20:57 +00:00)的日期。
如何比较字符串是否为有效日期?
【问题讨论】:
-
尝试查看 moment.js (momentjs.com/docs),它是一个非常强大的日期库。您可以尝试使用任何值创建一个日期,然后检查它是否有效
-
这可能是重复的,但链接的重复的答案大多很差,仅依赖于 Date.parse,这对于随机格式非常不可靠。
-
正确解析日期字符串至关重要,您可以告诉解析器它采用什么格式(或提供您知道它将正确解析的格式)。否则,您可以尝试一系列不同的格式,并在获得“有效”的格式时停止。如果年份是第一个,您可以合理地确定 y-m-d 序列,但如果年份是最后一个,不合逻辑的 m/d/y 序列的普遍存在意味着您无法可靠地判断 04/05/2010 是 5 月 4 日还是4 月 5 日。
-
@RobG 好点。我在链接的欺骗中添加了一些新信息in this answer。
标签: javascript momentjs