Date.prototype.toISOString()没有返回正确的结果

时间:2016-06-05 14:45:13

标签: javascript date datetime toisostring

来自https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString

的此功能说明
  

toISOString()方法返回简化扩展ISO中的字符串   格式(ISO 8601),总是24个字符长:   YYYY-MM-DDTHH:MM:ss.sssZ。时区始终为零UTC偏移,如   用后缀" Z"表示。

它应该始终返回24个字符。请检查以下示例:

var d = new Date('08AUG20144');
d.toISOString();

返回长度为27个字符的+020144-08-08T04:00:00.000Z。有什么原因吗?

1 个答案:

答案 0 :(得分:3)

ECMAScript规范says about Extended Years

  

ECMAScript要求能够指定6位数年份(扩展   年份);大约285,426年,无论是前进还是后退,来自   1970年1月1日,UTC代表0或之后的年份,即9999年   8601允许扩展年份代表,但仅限于   事先与发送方和接收方达成协议。在简化中   ECMAScript格式如此扩展年份表示应具有2   额外的年份数字,并始终以+或 - 符号作为前缀。那一年   0被认为是正数,因此以+符号为前缀。

I've adapted the MDN docs