我是在使用[...arr]
/ Date()
构造函数使用范围运算符(Date.UTC()
)时做错了什么还是已知的错误?
让我感到困惑的是
x = [2015,5,1]; //(3) [2015, 5, 1]
new Date(2015, 5, 1); //Just as expected, Mon Jun 01 2015 00:00:00 GMT+0300 (Eastern European Summer Time)
new Date([...x]); //Fri May 01 2015 00:00:00 GMT+0300 (Eastern European Summer Time)
new Date(Date.UTC([...x])) //Invalid Date
p.s。我知道,后者是模棱两可的,因为带有多个参数的Date()
已经返回UTC日期
答案 0 :(得分:4)
答案 1 :(得分:2)
因为要传递相同的数组x
作为参数。使用Rest parameters。因为Date.UTC
不接受数组作为参数
UTC()
采用逗号分隔的日期和时间参数
x = [2015,5,1]; //(3) [2015, 5, 1]
new Date(2015, 5, 1); //Just as expected, Mon Jun 01 2015 00:00:00 GMT+0300 (Eastern European Summer Time)
console.log(new Date(Date.UTC(...x)))