一尘不染

javascript / json日期文字

json

JSON / JavaScript的日期文字是什么(如果存在的话)?


阅读 214

收藏
2020-07-27

共1个答案

一尘不染

提出了日期文字,然后将其撤消,也许我们会在ECMA-262规范的未来版本中看到它们。

由于JavaScript中没有Date文字,所以JSON也没有文字(如果JavaScript引擎无法解析,则JavaScript
Object Notation不会是一个好名字;)。诚然,这是不幸的。许多Web服务都会输出ISO
8601
字符串,例如2010-03-23T23:57Z,但是为了在JavaScript中进行解析,您需要使用自定义库,创建自定义函数或依赖ECMAScript
5th的Date解析规范,该规范规定实现应解析ISO 8601。本机字符串。

如果要在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对象来在解析时使用齐磊

2020-07-27