Javascript 为什么在创建日期时,它';它是用少一天的时间创造的吗?

Javascript 为什么在创建日期时,它';它是用少一天的时间创造的吗?,javascript,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) 我需要理解为什么会发生这种情况。你的日期是对的,只是你从来没有指定正确的时区 如果需要访问日期值,可以使用getUTCDate()或: var d,天;

我正在创建此日期:

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)

我需要理解为什么会发生这种情况。

你的日期是对的,只是你从来没有指定正确的时区

如果需要访问日期值,可以使用
getUTCDate()
或:

var d,天;
d=新日期(“2018-02-23”);
天数=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’、‘星期六’];

console.log(天[d.getUTCDay()])你得到了正确的日期,只是从来没有指定正确的时区

如果需要访问日期值,可以使用
getUTCDate()
或:

var d,天;
d=新日期(“2018-02-23”);
天数=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’、‘星期六’];

console.log(天[d.getUTCDay()])这是由于时区转换。创建日期时没有指定时区,因此它使用UTC。然而,
toString()
将转换为本地时区,对您来说显然是-0500,从日期时间减去5小时,将其置于前一天1900小时

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

const myDate = new Date("1949-12-30");
console.log("myDate: ", myDate.toUTCString());
我的日期:1949年12月30日星期五00:00:00 GMT


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

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

const myDate = new Date("1949-12-30");
console.log("myDate: ", myDate.toUTCString());
我的日期:1949年12月30日星期五00:00:00 GMT


正在以UTC解析日期,但以本地时区显示。JavaScript使用UTC作为默认时区来解析和存储日期。它显示在另一个时区(根据您的浏览器设置)。日期以UTC解析,但显示在本地时区。JavaScript使用UTC作为默认时区来解析和存储日期。它显示在另一个时区(根据您的浏览器设置)。谢谢,您的答案帮助我解决了代码问题谢谢,您的答案帮助我解决了代码问题谢谢,这个答案帮助我理解谢谢,这个答案帮助我理解