HighCharts Line xas datetime

时间:2016-09-18 17:47:43

标签: jquery highcharts

我遇到类型的数据有问题:x-as中的datetime。我有一系列的日期从2016年7月1日(年/月/日)和2016年10月1日,但我无法正确显示图表。日期显示不正确,我收到错误15。

我将数据(chartInfo.DataSetTime)作为字典(string,int)获取。该字符串包含日期,如01/07/2016

这就是我得到的:

var dataset = [];

    $.each(chartInfo.DataSetTime, function (key, value) {
        var datum = key.split('/');
        var dateke = new Date(datum[2], datum[1] - 1, datum[0]);
        dataset.push([Date.UTC(dateke.getFullYear(), dateke.getMonth() ,dateke.getDay()), value]);
            });

    for (var i in dataset) {
        dataset[i].sort(function (a, b) {
            if (a.x > b.x) {
                return 1;
            }

            if (b.x > a.x) {
                return -1;
            }

            return 0;
        });
    }

    console.log(dataset);
        $('#container').highcharts({
            chart: {
                zoomType: 'x',
                     defaultSeriesType: 'line',
    renderTo: 'container'
            },
            title: {
                text: chartInfo.TitleChart
            },
            subtitle: {
                text: document.ontouchstart === undefined ?
                        'Klik en sleep in de grafiek om in te zoomen' : 'Swipe over de grafiek om in te zoomen'
            },
            xAxis: {
                type: 'datetime',
                dateTimeLabelFormats: { // don't display the dummy year
                    month: '%e. %b',
                    year: '%b'
                },
            },
            yAxis: {
                title: {
                    text: chartInfo.TitleYas
                }
            },
            legend: {
                enabled: false
            },
            plotOptions: {
                area: {
                    fillColor: {
                        linearGradient: {
                            x1: 0,
                            y1: 0,
                            x2: 0,
                            y2: 1
                        },
                        stops: [
                            [0, Highcharts.getOptions().colors[0]],
                            [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
                        ]
                    },
                    marker: {
                        radius: 2
                    },
                    lineWidth: 1,
                    states: {
                        hover: {
                            lineWidth: 1
                        }
                    },
                    threshold: null
                }
            },

            series: [{
                type: 'area',
                name: 'USD to EUR',
                data: dataset.sort(function (a, b) {
                    return a[0] - b[0];
                })

            }]
        });

感谢任何帮助