【问题标题】:Changing timezone when conver to JSON转换为 JSON 时更改时区
【发布时间】:2014-03-12 05:46:13
【问题描述】:

我想在我的模块中使用 JSON 格式获取日期,当我将日期值转换为 json 时,它会更改时区,最终日期会更改为例如

var myDateWithJson=(new Date(2014, 03, 11).toJSON());
 alert("Date With Json " +myDateWithJson);
 var myDateWithoutJson = new Date(2014,03,11);
 alert("Date Without Json " + myDateWithoutJson);

我也经历过covert json without timezone 但是,我认为这不是更好的方法 请指导我更好的方法

【问题讨论】:

  • 所有 Date 对象的核心是 UTC 时间值。传递日期的最佳方法是使用时间值或基于 UTC 的 ISO 8601 字符串,这是您从 Date.prototype.toJSON 获得的。

标签: javascript json date datetime


【解决方案1】:

在您的代码中:

var myDateWithJson=(new Date(2014, 03, 11).toJSON());

将根据系统设置在您当前的语言环境中为 2014 年 4 月 11 日上午的 00:00:00 创建一个日期对象(请注意,此处的月份索引为零)。调用 toJSON 会返回基于 UTC 的等效时刻的 ISO 8601 日期和时间字符串。

日期对象将有一个内部 time value,即自 1970-01-01T00:00:00Z 以来的毫秒数。

var myDateWithoutJson = new Date(2014,03,11);

这会为完全相同的时间创建一个日期对象,即具有完全相同的time value。

alert("Date Without Json " + myDateWithoutJson);

这会调用日期对象的toString 方法,该方法返回一个人类可读的字符串,该字符串表示基于系统设置的当前语言环境中的日期和时间。

所以第一个是 UTC 字符串,第二个是本地字符串。两者都代表完全相同的时刻,如果转换回 Date 对象,将具有完全相同的内部time value。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2018-08-27
    • 2019-06-19
    • 2019-11-12
    • 2015-03-21
    相关资源
    最近更新 更多