Chart.js charts.js和时间戳作为可读日期

Chart.js charts.js和时间戳作为可读日期,chart.js,Chart.js,我有一些带有时间戳和整数值的数据。现在我创建了一个散点图,因为我的时间戳不在同一频率,但值是在随机时间获取的。时间戳是x轴,值是y轴。现在我想把时间戳转换成可读的时间格式。所以我包括了一些时刻。但我就是不能让它显示我格式化的时间字符串。它只是简单地显示一些默认格式,即使我更改了代码。 这是怎么回事?标签是 这是我的密码: var x=new Chartdocument.getElementByIdhum1{ 键入:“散布”, 数据:{ 数据集:[{ 标签:测试, pointStyle:'lin

我有一些带有时间戳和整数值的数据。现在我创建了一个散点图,因为我的时间戳不在同一频率,但值是在随机时间获取的。时间戳是x轴,值是y轴。现在我想把时间戳转换成可读的时间格式。所以我包括了一些时刻。但我就是不能让它显示我格式化的时间字符串。它只是简单地显示一些默认格式,即使我更改了代码。 这是怎么回事?标签是

这是我的密码:

var x=new Chartdocument.getElementByIdhum1{ 键入:“散布”, 数据:{ 数据集:[{ 标签:测试, pointStyle:'line', 秀行:没错, 填充:假, 边框颜色:“00ff00”, 点半径:0, 数据:[], },{ 标签:湿度1, 秀行:没错, 填充:是的, 边框颜色:“0000FF”, 点半径:0, 数据:[ {x:1588353429.6027,y:400}, {x:1588353430.6634,y:0}, {x:1588353431.7241,y:0}, {x:1588353432.7848,y:0}, {x:1588353433.8455,y:400}, {x:1588353434.9062,y:400}, {x:1588353435.9668,y:400}, {x:1588353437.0274,y:400}, {x:1588353438.0881,y:400}, {x:1588353439.1487,y:400}, {x:1588353440.2093,y:400}, {x:1588353441.27,y:400}, {x:1588353442.3307,y:400}, {x:1588353443.3929,y:400}, {x:1588353444.4537,y:400}, {x:1588353445.5142,y:400}, {x:1588353723.1543,y:415}, {x:1588353724.216,y:0}, {x:1588353725.2782,y:0}, {x:1588353726.3402,y:0}, {x:1588353727.402,y:400}, {x:1588353728.463,y:400}, {x:1588353793.2418,y:415}, {x:1588353794.304,y:0}, {x:1588353795.3658,y:0}, {x:1588353796.4265,y:0}, {x:1588353797.4882,y:400}, {x:1588353798.5495,y:400}, {x:1588353799.6102,y:400}, {x:1588353800.6715,y:400}, {x:1588353801.7327,y:405}, {x:1588353802.7933,y:400}, {x:1588353803.8564,y:405}, {x:1588353804.9154,y:405}, {x:1588353805.9779,y:405}, {x:1588353807.0411,y:411}, ], } ] }, 选项:{ 回答:错, 图例:{ 位置:'底部', 标签:{ usePointStyle:true } }, 比例:{ xAxes:[{ 键入:“时间”, 单位:分钟, 时间:{ 显示格式:{ 分钟:“HH:mm” } }, 滴答声:{ 资料来源:“数据”, autoSkip:对 }, 显示:对, scaleLabel:{ 显示:对, 标签字符串:“时间戳” } }], 雅克斯:[{ 显示:对, 滴答声:{ 贝吉纳泽罗:是的, 步骤:10, 步长值:5, 最高:36282.75, 最低:0 }, scaleLabel:{ 显示:对, 标签字符串:“湿度[%]” } }] }, 标题:{ 显示:对, 文字:“灯丝轮毂1” } } };
主要问题是时间戳是自1970年1月1日UTC以来的Unix时间戳秒数。但是,JavaScript对象自UTC 1970年1月1日起使用毫秒。因此,在将数据分配给图表配置之前,应将时间戳乘以1000

data.forEach((o) => o.x *= 1000); 
我还对XAX的定义做了如下细微的更改:

xAxes: [{
    type: 'time',        
    time: {
      unit: 'minute',
      displayFormats: {
        minute: 'HH:mm'
      },
      tooltipFormat: 'HH:mm'
    },
    scaleLabel: {
      labelString: 'Timestamp'
    }
  }],
请在下面查看您的修订代码

常数数据=[ {x:1588353429.6027,y:400}, {x:1588353430.6634,y:0}, {x:1588353431.7241,y:0}, {x:1588353432.7848,y:0}, {x:1588353433.8455,y:400}, {x:1588353434.9062,y:400}, {x:1588353435.9668,y:400}, {x:1588353437.0274,y:400}, {x:1588353438.0881,y:400}, {x:1588353439.1487,y:400}, {x:1588353440.2093,y:400}, {x:1588353441.27,y:400}, {x:1588353442.3307,y:400}, {x:1588353443.3929,y:400}, {x:1588353444.4537,y:400}, {x:1588353445.5142,y:400}, {x:1588353723.1543,y:415}, {x:1588353724.216,y:0}, {x:1588353725.2782,y:0}, {x:1588353726.3402,y:0}, {x:1588353727.402,y:400}, {x:1588353728.463,y:400}, {x:1588353793.2418,y:415}, {x:1588353794.304,y:0}, {x:1588353795.3658,y:0}, {x:1588353796.4265,y:0}, {x:1588353797.4882,y:400}, {x:1588353798.5495,y:400}, {x:1588353799.6102,y:400}, {x:1588353800.6715,y:400}, {x:1588353801.7327,y:405}, {x:1588353802.7933,y:400}, {x:1588353803.8564,y:405}, {x:1588353804.9154,y:405}, {x:1588353805.9779,y:405}, {x:1588353807.0411,y:411} ]; data.forEacho=>o.x*=1000; 新建Chartdocument.getElementByIdhum1{ 键入:“散布”, 数据:{ 数据集:[{ 标签:湿度1, pointStyle:'line', 秀行:没错, 填充:假, 边框颜色:“0000FF”, 点半径:0, 数据:数据 }] }, 选项:{ 回答:错, 图例:{ 位置:'底部', 标签:{ usePointStyle:true } }, 比例:{ xAxes:[{ 键入:“时间”, 时间:{ 单位:分钟, 显示格式:{ 分钟:“HH:mm” }, 工具提示格式:“HH:mm” }, scaleLabel:{ 显示:对, 标签字符串:“时间戳” } }], 雅克斯:[{ 显示:对, 滴答声:{ 贝吉纳泽罗:是的, 步骤:10, 步长值:5, 最低:0 }, scaleLabel:{ 显示:对, 标签字符串:“湿度[%]” } }] }, 标题:{ 显示:对, 文字:“灯丝轮毂1” } } };
@杰珀:很高兴我能帮忙。如果你认为我的答案能解决你的问题,请接受。请参阅。使用图表。js@next,这已经不起作用了。这是Chart.JS的一个bug,还是API中有什么变化?