> new Date("2012-01-01"); Sun Jan 01 2012 07:00:00 GMT+0700 (ICT) > new Date("01-01-2012"); Sun Jan 01 2012 00:00:00 GMT+0700 (ICT) > new Date("2012-01-01") == new Date("01-01-2012") false
我使用Chrome 32,因为你可以看到他们是7小时不同.请告诉我这里发生了什么?
解决方法
从spec for Date.parse:
The function first attempts to parse the format of the String according to the rules called out in Date Time String Format (07005). If the String does not conform to that format the function may fall back to any implementation-specific heuristics or implementation-specific date formats. Unrecognizable Strings or dates containing illegal element values in the format String shall cause Date.parse to return NaN.
含义如果您不使用15.9.1.15中指定的完整的ISO-8601日期,浏览器可以使其完成,或者只是给您NaN.即使这是标准,一些浏览器是不知道实际上不遵循标准,所以您可以考虑通过自己解析数据并使用另一个Date构造函数(spec)来明确地指定所有参数.
原文地址:https://www.jb51.cc/js/153020.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。