【发布时间】:2018-02-06 10:43:08
【问题描述】:
Chrome 返回字符串“FY 2000”的有效日期而不是无效日期,而其他浏览器正确返回“无效日期”
小提琴链接:https://jsfiddle.net/Lddr79ek/
代码:
function isDate(value)
{
return new Date(value).toString()!= "Invalid Date");
}
这是 chrome 浏览器的问题吗?
编辑 问题是报告的行为仅在 chrome 浏览器中破坏了我们的产品。我检查了 SO 中的其他答案,但它们也不适用于 chrome。
【问题讨论】:
-
简短回答:不要通过将
Date与字符串进行比较来检查无效日期。我在 Edge(我当前的浏览器)上检查了你的 sn-p,当调用new Date()时,我得到了一个Date对象。 -
@Tim Given 答案在 chrome 中不起作用
-
那么你应该给我们一个 reproducible 的代码示例,该示例可以由另一个 SO 用户在 Chrome 上轻松运行。您当前的方法在任何浏览器 AFAIK 上都不理想,因此它在 Chrome 上不起作用是一个有争议的问题。
-
Chrome 几乎可以接受任何东西,
'In the year 2525'也被解析为有效日期。 -
@Kira——这是重复的。自 ECMAScript 版以来。 5、内置解析器只需要解析标准中指定的格式(ISO 8601扩展的一个版本)。其他任何事情都完全依赖于实现,也就是说,实现可以根据需要解析字符串。在埃德之前。 5,根本不需要解析任何特定的格式。
标签: javascript google-chrome date