如何从mysql获取DateTime并将其设置为json格式,为highcharts做好准备

时间:2017-01-05 03:38:07

标签: mysql json highcharts

我去年3月份开始了我的项目,几乎把它弄好了。 试图从mysql获取数据并将其放在highcharts中。 这是我的查询

<?php
$con = mysqli_connect("localhost","root","root","manortsc_test");

if (!$con) {
  die('Could not connect: ' . mysql_error());
}

$sth = mysqli_query($con,"
    SELECT DateTime,max(T)
    FROM alldata
    WHERE DATE(DateTime) = CURDATE() - INTERVAL 1 DAY
    GROUP BY hour(DateTime)

    "
    );
    $rows = array();
    $rows['name'] = 'Outside';
    while($r = mysqli_fetch_array($sth)) {
        $rows['data'][] = $r['max(T)'];
}
$result = array();
array_push($result,$rows);

print json_encode($result, JSON_NUMERIC_CHECK);

mysqli_close($con);
?>

json输出缺少日期和时间

[{ “名称”: “外”, “数据”:[17.5,16.3,15.6,15.1,14.4,14,14.1,16,18.5,21.7,24.1,26.9,28.3,29.6,30.6,31.1, 31.8]}]

图表显示正常(x轴上的日期时间除外),我无法确定如何修复它。除了正确的方法,我已经尝试过各种方式。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

将查询更改为此,现在可以正常运行。

感谢wergeld和Yuri的帮助。

     $sth = mysqli_query($con,"
        SELECT DateTime,max(T)
        FROM davisvp
        WHERE DATE(DateTime) = CURDATE()
        GROUP BY hour(DateTime)
       "
      );
      $result = array();
      $result['name'] = 'temperature';
      while($row = mysqli_fetch_array($sth))
      {
        $date = strtotime($row['DateTime']);
        $maxt = 1 * $row['max(T)'];
        $result1 = array();
        array_push($result1,$date);
        array_push($result1,$maxt);
        $result['data'][] = $result1;
      }
      echo json_encode($result, JSON_NUMERIC_CHECK);