1

ハイチャートを使用していくつかのセンサーデータを表示する必要があり、PHPフレームワークとしてYIIを使用しています。時間をタイムスタンプ(3)としてmysql(v5.6)に保存します。ミリ秒の小数部が必要です。ほとんどのデータが1秒または2秒であるため、これを使用します。

私のコントローラーは出力として私を与えます ["2012-12-01 15:00:00.070",45] が、このポイントは私のチャートに表示されていません、そしてajaxリクエストは一度だけ行われます私は "var series = chart.series [0]、"Idon'のレベルでfirebugでエラーを受け取ります問題が私のハイチャートコードにあるのか、時間形式にあるのかわからない。ポイントを受け取った後、コード内でDateparseを使用する方法もわからない。助けてください!

function requestData() {
 $.ajax ({
            type:"get" ,
        url: "<?php echo CController::createUrl('beam/GetSensorsDataLive') ?>",
        data: {"beamId" : "<?php echo $modelBeam['poutre_id'] ?>" },
         dataType: "json",

          success: function(response,point) {
          var series = chart.series[0], //// error here 

    shift = series.data.length > 20;// shift if the series is longer than 20
          chart.series[0].addPoint( point,true, false); // add the point
          setTimeout(requestData, 1000);    // call it again after one second

                                   },
                                 cache: false
    });
           }  

 $(document).ready(function() {
     var chart;

        chart = new Highcharts.Chart({
        chart: {
            renderTo: 'graph',
            type: 'spline',
            events: {
                load: requestData   
            }
        },

        xAxis: {
          type: 'datetime',
          },
              tooltip: {

                  formatter: function() {

                    return '<b>'+ this.series.name +'</b><br/>'+

                    Highcharts.dateFormat('%H:%M:%S:%m', this.x) +'<br/>'+

                    Highcharts.numberFormat(this.y, 2);

            }

        },  


                    series: [{
            name: 'Live Data From sensor <?php echo $modelBeam['poutre_id'] ;?>  ',
             data:[] 
        }]

    });

});
4

1 に答える 1

0

データxはミリ秒単位のJSタイムスタンプである必要があります。また、phpからデータを解析し、Date.UTC()関数を使用することもできます。

于 2013-02-01T09:47:12.203 に答える