Highcharts Date.UTC无法正确处理实际数据

时间:2019-05-07 08:51:13

标签: javascript date highcharts

我已经建立了类似的东西。我从服务器获取数据,将其放入名为series的对象中,然后将其传递给Highcharts代码块中的'series'。基本上,每个员工都会有一个日期,并且我的默认值(Y轴)现在为“ 1”。但是,即使看起来我具有正确的数据并进行了正确的解析,我也无法按预期在图表上获得日期。出乎意料的是,我得到的毫秒值是Y轴值,这没有任何意义,并且每个工作人员都有一个默认日期,即1月1日。 (例如,工作人员1,1月1日,x轴值= 1554422400000)

我得到这样的日期, 2019年2月19日17:32 。然后我将它们分开,像这样使用 ([[Date.UTC(parseInt(yearsplit [0]),datesplit [1] -1,parseInt(datesplit [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 :(得分:0)

我刚刚意识到我在push函数中犯了一个小错误。在series.push中,“数据”应像这样,并用数组括起来:

data: [
   [ Date.UTC(parseInt(yearsplit[0]), parseInt(datesplit[1])-1, parseInt(datesplit[0])), 1]
   ]