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

时间:2019-01-10 16:18:05

标签: javascript date

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

 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

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

似乎与您的时区有关。

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

答案 1 :(得分:0)

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

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