当每个日期以不同的方式保存时,如何根据月份更改日期和过滤数据?

How to change date and filter data due to the month when each date is saved in different way?

我有一组日期:

["Mon Dec 17 2018 16:36:04 GMT+0100 (Central European Standard Time)", 1545064594, 1545294858, "Thu Dec 20 2018 09:37:16 GMT+0100 (Central European Standard Time)", 1545306111, 1545310335, "Thu Dec 20 2018 12:46:48 GMT+0100 (Central European Standard Time)", 1545319619, 1545742063, 1545918029, 1546602411, 1546602745, 1546957949]

如您所见,每个日期的写法都不同....我想做一个 if 语句 - 如果值长度等于纪元长度,那么应该更改日期...到目前为止我写了此代码:

 const Month = [];
 for (let i = 0; i < database.length; i++) {
 Month.push(database[i].date);
  }
 console.log(Month);


  if (Month == 18){
  console.log(Month.length)


  var utcSeconds = Month
  var d = new Date(0); 
  d.setUTCSeconds(utcSeconds);
  console.log (d)

}

我得到了日期和数组,而且 Epoch 代码也可以工作......但我的问题是并非所有这些都是 Epoch 日期所以我很困惑如何通过它......以后我仍然会喜欢过滤数据并将其分离为 12 月/1 月作为 2 个单独的数组(我需要此数据用于仪表板)。我将不胜感激任何帮助。

数值似乎是自纪元以来的时间,以秒为单位,您可以使用如下方法将数组中的所有值转换为 Date 对象:

let arr = ["Mon Dec 17 2018 16:36:04 GMT+0100 (Central European Standard Time)", 1545064594, 1545294858, "Thu Dec 20 2018 09:37:16 GMT+0100 (Central European Standard Time)", 1545306111, 1545310335, "Thu Dec 20 2018 12:46:48 GMT+0100 (Central European Standard Time)", 1545319619, 1545742063, 1545918029, 1546602411, 1546602745, 1546957949];


arr = arr.map(v => {
  if (!isNaN(v)) {
    v *= 1000; // from seconds to milliseconds
  }
  return new Date(v);
})

console.log(arr.map(v => v.toString()));