我想使用以下代码创建一个新的日期:
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()
);