为什么在创建日期时,创建的日期少一天?

时间:2018-02-23 21:59:26

标签: javascript

我创建了这个日期:

var myDate = new Date("1949-12-30");
console.log("myDate: " + myDate.toString());

控制台打印出来:

Thu Dec 29 1949 19:00:00 GMT-0500 (Hora est. Pacífico, Sudamérica)

我需要了解为什么会这样。

1 个答案:

答案 0 :(得分:4)

这是由于时区转换造成的。您在创建日期时未指定时区,因此它使用UTC。但是toString()会转换为本地时区,对于您来说显然是-0500,从日期时间减去5小时,将其放在前一天1900小时。

您可以使用toUTCString()获取原始日期:

const myDate = new Date("1949-12-30");
console.log("myDate: ", myDate.toUTCString());
  

myDate:星期五,1949年12月30日00:00:00 GMT