0

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();

返回+020144-08-08T04:00:00.000Z27 个字符长。任何原因?

4

1 回答 1

4

ECMAScript 规范中提到了Extended Years

ECMAScript 要求能够指定 6 位数的年份(扩展年份);从 UTC 1970 年 1 月 1 日起,前后大约 285,426 年。为了表示 0 之前或 9999 之后的年份,ISO 8601 允许扩展年份表示,但只能通过发送方和接收方之间的事先协议。在简化的 ECMAScript 格式中,这种扩展的年份表示应具有 2 个额外的年份数字,并且始终以 + 或 - 符号为前缀。0 年被认为是正数,因此以 + 号为前缀。

我已经改编了 MDN 文档

于 2016-06-05T15:21:35.183 回答