Javascript stringify为日期返回不同的值
我需要我的json.stringify方法返回如下内容:Javascript stringify为日期返回不同的值,javascript,json,date,Javascript,Json,Date,我需要我的json.stringify方法返回如下内容: //The code below is the same as JSON.stringify(new Date()); console.log(new Date().toJSON()); 这将返回以下信息: "/Date(1373046760480-0300)/" 这很好,但在某些情况下,相同的操作会返回以下结果: "2013-07-05T17:52:55.434Z" 这不是预期的结果,然后我必须创建字符串以获得预期的结果 有人知道
//The code below is the same as JSON.stringify(new Date());
console.log(new Date().toJSON());
这将返回以下信息:
"/Date(1373046760480-0300)/"
这很好,但在某些情况下,相同的操作会返回以下结果:
"2013-07-05T17:52:55.434Z"
这不是预期的结果,然后我必须创建字符串以获得预期的结果
有人知道为什么会发生这种情况吗?除非有人意外(通过使用第三方库)覆盖了
Date.prototype.toJSON
JSON Date的默认输出是后者:
下面是可能的(asp.net使用的非标准实现)
除非有人意外(通过使用第三方库)覆盖了
Date.prototype.toJSON
,否则JSON日期的默认输出为后者:
下面是可能的(asp.net使用的非标准实现)
什么情况?据我所知,它总是返回后一个字符串。???在哪种情况下,您在哪种浏览器中获得第一个字符串?对于我来说,console.log(new Date().toJSON())在Chrome和Firefox中返回“2013-07-05T18:05:10.600Z”。第一个字符串不是有效的JSON。根据规范,
toJSON
应该调用toISOString
()。什么情况?据我所知,它总是返回后一个字符串。???在哪种情况下,您在哪种浏览器中获得第一个字符串?对于我来说,console.log(new Date().toJSON())在Chrome和Firefox中返回“2013-07-05T18:05:10.600Z”。第一个是无效的JSON。根据规范,toJSON
应该调用toISOString
()。就是这样,sencha框架会这样做。。。谢谢,我开始认为我对js中日期的了解已经过时了!就是这样,sencha框架就是这样做的。。。谢谢,我开始认为我对js中日期的了解已经过时了!
Date.prototype.toJSON = function(){ return "/Date(" + this.getTime() + ")/" }