javascript/json日期文字

nwwlzxa7  于 2022-12-30  发布在  Java
关注(0)|答案(4)|浏览(138)

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

pxq42qpu

pxq42qpu1#

日期字面值were proposed and then retracted;也许我们会在未来版本的ECMA-262规范中看到它们。
there is no Date literal in JavaScript开始,JSON也没有文字(如果JavaScript引擎不能解析,JavaScript对象表示法就不是一个好名字;- )).诚然,这是不幸的.许多Web服务将输出一个ISO 8601字符串,例如2010-03-23T23:57Z,但为了在JavaScript中解析它,您需要使用一个自定义库,创建一个自定义函数或依赖于ECMAScript 5th的Date解析规范,该规范规定实现应该原生地解析ISO 8601字符串.
如果要用JavaScript解析的是您自己的JSON,您可以使用类似毫秒since 1970 January 1st 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。

llycmphe

llycmphe2#

日期文字没有特殊格式。
在Javascript中,您可以编写new Date(2010, 2, 23)(不幸的是,月份是从零开始的)。

dgsult0t

dgsult0t3#

取决于序列化程序。
它可以是以下之一:
/日期(1224043200000)/
/日期(1198908717056)/(MS JSON日期)
/日期(1198908717056-1000)/(+/-时区)
新日期(“2010-03-24”)(据我所知,这是公认的“javascript json”)
“2010年3月24日”
等等

laik7k3q

laik7k3q4#

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

相关问题