Верхняя диаграмма X-Axis Label DateTime Issue - PullRequest
0 голосов
/ 11 июня 2018

Мои требования

Мне нужно построить график для нескольких серий - Значение против 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) я заменяю их и преобразовываю в новую дату как ToLocaleString ().

  1. Это правильно?
  2. Без этого преобразования я тоже пробовал, но оно не дает ожидаемой метки даты по оси x
  3. @ ewolden Должен ли я включать .getTime() там по вашему предложению?

Эти данные в переменной ddd имеют следующее значение:

Data_Sample_Hard_Coded

Снимок экрана для данных, поступающих с внутреннего интерфейса Image_showing_Data_from_Back_end_for_3_series

Моя проблема

Метка оси Xне отображает правильный формат даты. На снимке экрана ниже показан график с неправильным значением по оси X.Что тут не так делаю?Я вижу ту же проблему, что и у меня, в проблема даты и времени High-charts_x-axis , но не могу получить оттуда и ответ.graph

1 Ответ

0 голосов
/ 11 июня 2018

Вам нужно отформатировать время в миллисекундах, что влечет за собой две вещи: один тип набора 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...