适用于highcharts的JSON格式

时间:2015-12-23 17:35:11

标签: javascript php json highcharts

我有一个mysql db喂养对我的highcharts。它为pH计提供时间戳和传感器值。当我加载图表时,我得到了显示时间戳和传感器值的工具提示,但是当它从数据库连续提供时,工具提示显示未定义为我的时间戳,但我构建的数组有它。我希望尽可能具体。我认为我正在构建错误的json字符串,这就是为什么highcharts不知道如何处理它。

这是我对php页面的回调:

events: {
    load: function() {
        var chart = this;
        var series = this.series[0];
        setInterval(function() {                                    
            $.getJSON("php/dataPhIncremental.php", function(data) {
                // Only add data points if the latest date in the DB is different
                if (!(chart.yAxis[0].dataMax == data[0].data[0])) {
                    $(chart.series).each(function(i, series) {
                        console.log(data[0]);
                        series.addPoint([data[0].timestamp[0], data[0].data[0]]);

                    }); 
                } 
                else {
                    console.log("did not write point"+ oldPoint + "   " + data[0].data);
                }
            })
        }, 1000);
    }

认为getJSON将转到php页面并获取json字符串,让highcharts用它做它想要的东西。我错了。

我的php json返回对象示例:

[{"name":"pH","data":[4.76],"timestamp":["2015-12-23 12:31:42"]}]

这是针对增量回调的。初始字符串包含10对。

1 个答案:

答案 0 :(得分:0)

尝试使用日期类型:

                    console.log(data[0]);
                    d = new Date(data[0].timestamp[0]);
                    series.addPoint(d, data[0].data[0]);

尝试使用xAxis:

xAxis: {
  type: 'datetime',
  labels: {
    formatter: function() {
      return Highcharts.dateFormat('%e %b', this.value*1000); // milliseconds not seconds
    },
  }
}