我无法在IE8和Safari5上解析ISO-8601日期"2011-04-26T13:16:50Z“,但它在Chrome10和FF4上可以工作。支持似乎相当复杂?
有没有人知道哪些浏览器可以解析这种格式的实际状态?我假设IE6和7也会失败。
var d = Date.parse("2011-04-26T13:16:50Z");发布于 2012-10-17 21:08:17
我今天遇到了这个问题。我发现momentjs是跨浏览器环境下解析ISO8601日期的好方法。
momentjs还可以用来以不同的格式输出日期。
发布于 2013-11-27 00:50:07
在任何浏览器中解析ISO8601日期格式的简单函数:
function dateFromISO8601(isoDateString) {
  var parts = isoDateString.match(/\d+/g);
  var isoTime = Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]);
  var isoDate = new Date(isoTime);
  return isoDate;
}发布于 2012-05-25 17:32:18
ES5规范与ISO8601规范不同,特别是在处理没有时区指示符/偏移量的日期时。在https://bugs.ecmascript.org/show_bug.cgi?id=112上有一个描述这个问题的错误标签,看起来这个问题将在ES6中得到修复。
现在,我建议在https://github.com/csnover/js-iso8601中寻找跨浏览器的实现。我使用的是https://github.com/csnover/js-iso8601/tree/lax,它不符合ES5规范,但与JSON.NET等其他JSON序列化库有更好的互操作性。
https://stackoverflow.com/questions/5802461
复制相似问题