我的要求
我需要绘制一个多系列图 - Value vs DateTime(x轴)。
我现在做了什么
我从后端获取数据,相应地操纵系列并绘制HighChart。
更新
我的代码如下:
for (i = 0; i < signals.DeviceSignalDataGroupList.length; i++) {
ddd[i] = [];
var DeviceSignalModel = signals.DeviceSignalDataGroupList[i];
name.push(DeviceSignalModel[0].SignalName);
$.each(DeviceSignalModel, function () {
ddd[i].push([(new Date(parseInt((this.SignalData.TimeReceived).replace('/Date(', '')))).toLocaleString(), parseInt(this.SignalData.Value)]); //<=======(LINE A)
//ddd[i].push([(this.SignalData.TimeReceived).replace('/Date(', '').replace(')/', ''), parseInt(this.SignalData.Value)]);
});
ddd[i] = ddd[i].reverse();
}
我从后端获得的日期时间值(this.SignalData.TimeReceived
)就像"/Date(1528387441000)/"
在上面的代码中(我标记为LINE A)我替换它们并转换为新的Date作为ToLocaleString()。
.getTime()
吗? 变量ddd
中的数据值如下:
我的问题
X轴标签不显示正确的日期格式。下面的屏幕截图显示了x轴上的值不正确的图表。 我在这做什么错了?我看到了和我一样的问题 High-charts_x-axis datetime issue但是也无法从那里得到答案。
答案 0 :(得分:0)
您需要将时间格式设置为毫秒,这需要两件事,一组类型datetime
:
xAxis: {
type: 'datetime',
...
}
并修复获取时间戳的函数,如下所示:
for (i = 0; i < signals.DeviceSignalDataGroupList.length; i++) {
ddd[i] = [];
var DeviceSignalModel = signals.DeviceSignalDataGroupList[i];
name.push(DeviceSignalModel[0].SignalName);
$.each(DeviceSignalModel, function () {
ddd[i].push([(new Date(parseInt((this.SignalData.TimeReceived).replace('/Date(', '')))).getTime(), parseInt(this.SignalData.Value)]); // changed toLocaleString() to getTime()
});
ddd[i] = ddd[i].reverse();
}