JSON / JavaScript的日期文字是什么(如果存在这样的东西?)
答案 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 ...”,对于对象表示,它使用对象表示法“{...}”