使用新的 Date() Javascript 生成的错误日期



我想使用以下代码创建一个新的日期:

 let date = new Date(dateComponents[2], dateComponents[1] - 1, dateComponents[0]);

其中dateComponent是:

[ '10', '01', '2019' ]

但是当我:

 console.log(date);

我得到:

2019-01-09T23:00:00.000Z

为什么不是:

2019-01-10T00:00:00.000Z

感谢您的帮助!

看起来这与你的时区有关。

let dateComponents = [ '10', '01', '2019' ]
let date = new Date(dateComponents[2], dateComponents[1] - 1, dateComponents[0]);
date.setTime( date.getTime() - date.getTimezoneOffset()*60*1000 );
console.log(date.toISOString()); // 2019-01-10T00:00:00.000Z

默认情况下,传递给 Date 构造函数的值被视为本地值。如果希望将值视为 UTC,请使用 Date.UTC 方法:

console.log( 
  new Date(Date.UTC('2019', '01' - 1, '10')).toISOString() 
);

最新更新