node筛选24小时前的时间戳并且排序

最近在做监控前端的报错信息,收集小程序、公众号、app、管理后台的报错信息,统一上传到报错平台
其中以管理人员打开平台的时间为最新的数据获取后24小时的报错信息
例:
打开时间为09:25则获取
10:25-09:25
09:25-08:25
08:25-07:25
07:25-06:25
06:25-06:25~~~~

然后使用echarts来渲染数据

// 引入dayjs
const dayjs = require('dayjs')
// 24小时时间戳
const date = []
// x轴坐标
const xAxisData = []
// y轴数据
const yAxisData = []
// 模拟数据
const demolist = [1595236542, 1595256542]
for (var i = 0;i<24;i++) {
  const tdate = i === 0 ? dayjs().add(1, 'hour') : dayjs().subtract(i - 1, 'hour')
  const zdate = dayjs().subtract(i, 'hour')
  date.push({
    t: tdate.unix(),
    z: zdate.unix()
  })
  xAxisData.push(`${addZero(tdate.hour())}:${addZero(tdate.minute())}-${addZero(zdate.hour())}:${addZero(zdate.minute())}`)
}
date.forEach(el => {
  var dataItem = demolist.filter(item => el.t >= item && el.z <= item) || []
  if (dataItem.length !== 0) {
    yAxisData.push(dataItem.length)
  } else {
    yAxisData.push(0)
  }
})
function addZero(nub) {
  return nub < 10 ? '0' + nub : nub
}
console.log(xAxisData)
console.log(yAxisData)
最终得到的数据

你可能感兴趣的:(node筛选24小时前的时间戳并且排序)