Highchart X-Axis标签DateTime问题

时间:2018-06-11 09:22:43

标签: c# asp.net-mvc highcharts

我的要求

我需要绘制一个多系列图 - 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()。

  1. 是吗?
  2. 如果没有这种转换,我已经尝试过它没有给出预期的x轴日期标签
  3. @ewolden我应该根据你的建议加入.getTime()吗?
  4. 变量ddd中的数据值如下:

    Data_Sample_Hard_Coded

    来自后端的数据的屏幕截图     Image_showing_Data_from_Back_end_for_3_series

    我的问题

    X轴标签不显示正确的日期格式。下面的屏幕截图显示了x轴上的值不正确的图表。 我在这做什么错了?我看到了和我一样的问题     High-charts_x-axis datetime issue但是也无法从那里得到答案。     graph

1 个答案:

答案 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();
}