传递变量作为 Date.UTC() 的参数

Passing a variable as the arguments for Date.UTC()

我想将 Date.UTC() 的参数作为存储在变量中的数组而不是一系列参数传递。

let dateArray = [2019, 0, 1, 0]; 
let utcTime = new Date(Date.UTC(dateArray));

returns NaN

当然这是行不通的,因为对象只接受一个接一个的参数。像这样;

let utcTime = new Date(Date.UTC(dateArray[0], dateArray[1], dateArray[2], dateArray[3]);

returns 1546300800000

问题是无论变量中数组的长度如何,我都希望它能够工作。

let newYear = [2020];
let christmasDay = [2019,11,25];
let lunchTime = [2019,11,25,12,30];

有没有办法将这些不同的变量作为 Date 对象的参数传递?

如何使用 ... 运算符:

[
  [2020],
  [2019, 11, 25],
  [2019, 11, 25, 12, 30]
].forEach(function(dateArray) {
  let utcTime = new Date(Date.UTC(...dateArray));
  console.log(JSON.stringify(dateArray) + " becomes " + utcTime.toISOString());
});