Highcharts Date.UTC не работает должным образом для реальных данных - PullRequest
0 голосов
/ 07 мая 2019

Я построил что-то вроде этого.Я получаю свои данные с сервера, помещаю их в объект, называемый сериями, и передаю их в серию в блоке кода Highcharts.По сути, для каждого сотрудника будет дата, и мое значение по умолчанию (ось Y) на данный момент равно «1».Однако я не могу получить даты на графике, как ожидалось, даже если кажется, что у меня были правильные данные и я выполнил правильный анализ.Неожиданно я получаю свои значения в миллисекундах в виде значений по оси Y, что не имеет никакого смысла, и у каждого сотрудника есть дата по умолчанию - 1 января. (Например, персонал 1, 1 января, значение по оси X = 1554422400000)

У меня такие даты, 19-02-2019 17: 32 ,Затем я разделяю их и использую вот так: ([Date.UTC (parseInt (yearsplit [0]), dateplit [1] -1, parseInt (dateplit [0])), 1]) который выглядит точно таким же форматом в Highcharts, ([Date.UTC (1971, 2, 16), 0.86])

var responsePromise = $http.post('statistics/getAllProtocolRecords', data, null);

responsePromise.success(function (dataFromServer, status, headers, config) {

    var series = [{
        name: "",
        data: []
    }];

    dataFromServer.protocolRecords.forEach((data) => {

        var datesplit = data.checkupDate.split("-");
        var yearsplit = datesplit[2].split(" ");

        series.push({
            name: data.staff,
            data: [Date.UTC(parseInt(yearsplit[0]), datesplit[1]-1, parseInt(datesplit[0])), 1]
        })
    });
    series.shift();

    Highcharts.chart('container', {
        chart: {
            type: 'spline'
        },
        title: {
            text: 'Toplam Muayene Kaydı (' + sysrefHcCheckupType + ')'
        },
        subtitle: {
            text: ''
        },
        xAxis: {
            type: 'datetime',
            dateTimeLabelFormats: { // don't display the dummy year
                month: '%e. %b',
                year: '%b'
            },
            title: {
                text: 'Tarih'
            }
        },
        yAxis: {
            title: {
                text: 'Toplam Muayene (Gün)'
            },
            min: 0
        },
        tooltip: {
            headerFormat: '<b>{series.name}</b><br>',
            pointFormat: '{point.x:%e. %b}: {point.y:%f} '
        },
        plotOptions: {
            spline: {
                marker: {
                    enabled: true
                }
            }
        },
        colors: ['#00bdff', '#FF0700', '#df0300', '#ff0700', '#c0df00'],
        series: series
    });
});

1 Ответ

0 голосов
/ 07 мая 2019

Я только что понял, что допустил небольшую ошибку в функции push. В series.push 'data' должна выглядеть так, заключенная в квадратные скобки:

data: [
   [ Date.UTC(parseInt(yearsplit[0]), parseInt(datesplit[1])-1, parseInt(datesplit[0])), 1]
   ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...