Does Javascript/EcmaScript3 support ISO8601 date parsing?
您目前如何解析 ISO8601 日期,例如2010-02-23T23:04:48Z 在 JavaScript 中?
某些浏览器在使用下面的代码时会返回 NaN(包括 Chrome),但 FF3.6 可以。
1 2 3 4 5 6 7 8 | <html> <body> <script type="text/javascript"> var d = Date.parse("2010-02-23T23:04:48Z"); document.write(d); </body> </html> |
你可以在这里试试 http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_parse
这是一个很好的实现,它涵盖了边缘情况并回退到原生实现。 https://github.com/csnover/js-iso8601/
试试这个:http://anentropic.wordpress.com/2009/06/25/javascript-iso8601-parser-and-pretty-dates/
正如其他人所提到的,它不在第 3 版规范中。然而,它在第 5 版规范中,我引用:
ECMAScript defines a string interchange format for date-times based upon a simplification of the ISO 8601 Extended Format. The format is as follows: YYYY-MM-DDTHH:mm:ss.sssZ
所以它应该很快就会进入浏览器(IE9、Chrome 1、Firefox 4 至少是一些支持 ISO 8601 日期的浏览器)。如果您想同时实现一个解决方案,您可能需要优化,以便您的脚本可以利用本机(如果可用):
1 2 3 4 5 6 7 8 9 10 11 12 | (function () { if (isNaN(Date.parse("2010-02-23T23:04:48Z"))) { var oldParse = Date.parse; Date.parse = function (strTime) { // regex test strTime for ISO 8601, use oldParse if it isn't // Use custom parser if it is. } } })(); |
关于标题中的问题:不是本地的(正如你测试过的:))
在 ECMA-262 (3/e) 中, 和