JSON / JavaScript的日期文字是什么(如果存在的话)?
提出了日期文字,然后将其撤消,也许我们会在ECMA-262规范的未来版本中看到它们。
由于JavaScript中没有Date文字,所以JSON也没有文字(如果JavaScript引擎无法解析,则JavaScript Object Notation不会是一个好名字;)。诚然,这是不幸的。许多Web服务都会输出ISO 8601字符串,例如2010-03-23T23:57Z,但是为了在JavaScript中进行解析,您需要使用自定义库,创建自定义函数或依赖ECMAScript 5th的Date解析规范,该规范规定实现应解析ISO 8601。本机字符串。
2010-03-23T23:57Z
如果要在JavaScript中解析的是您自己的JSON,则可以使用从1970年1月1日00:00开始的带有标识符的毫秒之类的简单方法,然后将reviver函数传递给JSON.parse:
var myJSON = '{"MyDate":"@1269388885866@"}' var myObj = JSON.parse(myJSON, function (key, value) { // Edit: don't forget to check the type == string! if (typeof value == "string" && value.slice(0, 1) == "@" && value.slice(-1) == "@") return new Date(+value.substring(1, -1)); else return value; }
显然,您需要使用现代浏览器或json2.js中的本机JSON对象来在解析时使用齐磊。