我想用以下代码创建一个新的日期:
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
感谢您的帮助!
答案 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()
);