1

我在 javascript 函数中有一个字符串,例如 '30/05/1981'。我正在把它变成这样的约会......

new Date(arguments.Value)

但是在 Chrome 中,当我尝试使用日期时,会出现“无效日期”错误。

它在所有其他浏览器中都能正常工作。

我将如何在 Chrome 中执行此操作?

4

3 回答 3

1

这是因为日期应采用以下格式MM/DD/YYYY

new Date("30/05/1981".replace(/^(\d{2})\/(\d{2})/, "$2/$1"));

但是YYYY/MM/DD也应该可以正常工作:

new Date("30/05/1981".split("/").reverse().join("/"));
于 2013-01-08T17:31:07.687 回答
1

我不会依赖浏览器(因为客户端可能有不同的日期格式)。

我建议创建一个日期解析器或使用日期库,如datejsSugarJS

于 2013-01-08T17:32:14.680 回答
0

这源于DD/MM/YYYYvs的冲突MM/DD/YYYYChrome仅通过使用后者来解决。您必须以不同的方式输入日期或进行一些字符串匹配。

var dateMatch = arguments.Value.match(/(\d\d)\/(\d\d)\/(\d\d\d\d)/);
new Date(+dateMatch[3], +dateMatch[2], +dateMatch[1]);
于 2013-01-08T17:33:01.743 回答