javascript / json日期文字

时间:2010-03-23 22:23:20

标签: javascript json date literals

JSON / JavaScript的日期文字是什么(如果存在这样的东西?)

4 个答案:

答案 0 :(得分:18)

日期文字were proposed and then retracted,也许我们会在ECMA-262规范的未来版本中看到它们。

there is no Date literal in JavaScript开始,JSON也没有文字(如果JavaScript引擎无法解析,则JavaScript Object Notation名称不会太好;-))。不可否认,这是不幸的。许多Web服务将输出ISO 8601字符串,例如2010-03-23T23:57Z,但为了在JavaScript中解析它,您需要使用自定义库,创建自定义函数或依赖ECMAScript 5th的Date解析规范,该规范声明实现应本地解析ISO 8601字符串。

如果你自己的JSON将在JavaScript中解析,你可以使用一些简单的东西,比如自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;
}

显然,您需要使用现代浏览器中的本机JSON对象或json2.js来解析时使用reviver。

答案 1 :(得分:7)

日期文字没有特殊格式。

在Javascript中,您可以编写new Date(2010, 2, 23)(不幸的是,月份从零开始)。

答案 2 :(得分:4)

取决于序列化器。

可能是以下之一:

/日期(1224043200000)/

/日期(1198908717056)/(MS JSON日期)

/日期(1198908717056-1000)/(+/-时区)

新日期(“2010-03-24”)(这是我所理解的普遍接受的'javascript json')

“2010-03-24”

答案 3 :(得分:0)

对于日期的字符串表示,JSON使用字符串表示法,例如“2010-03-24 ...”,对于对象表示,它使用对象表示法“{...}”