【问题标题】:JSON.stringify returns different values for datesJSON.stringify 返回不同的日期值
【发布时间】:2013-07-05 18:01:28
【问题描述】:

我需要我的 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"

这不是预期的结果,然后我必须创建字符串以获得预期的结果。

有人知道为什么会这样吗?

【问题讨论】:

  • 什么情况?据我所知,它总是返回后一个字符串。
  • ???在什么情况下你会在什么浏览器中得到第一个字符串?
  • 对于我来说,console.log(new Date().toJSON()) 在 Chrome 和 Firefox 中返回“2013-07-05T18:05:10.600Z”
  • 第一个不是有效的JSON。
  • 根据规范,toJSON 应该调用toISOString (es5.github.io/#x15.9.5.44)。

标签: javascript json date


【解决方案1】:

除非有人意外(通过使用第三方库)覆盖了Date.prototype.toJSON,否则 JSON 日期的默认输出是后者:

这可能是什么(asp.net 使用的非标准实现)

Date.prototype.toJSON = function(){ return "/Date(" + this.getTime() + ")/" }

【讨论】:

  • 就是这样,sencha 框架就是这样做的......谢谢我开始认为我对 js 中日期的了解已经生疏了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
相关资源
最近更新 更多