转换为JSON时更改时区

时间:2014-03-12 05:46:13

标签: javascript json date datetime

我想在我的模块中使用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但是,我认为这不是更好的方法 请指导我更好的approch

1 个答案:

答案 0 :(得分:0)

在您的代码中:

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将完全相同。