带有x轴时间戳的静态图表

时间:2015-06-03 06:34:45

标签: zingchart

我想创建一个从MySQL数据库中提取的静态值图表。 图表格式为(x轴:dd / mm / yy hh:mm:ss(对应于mysql数据库的时间戳)),y轴为双精度值。我能够从MySql数据库中成功检索这些值。我想通过ZingChart绘制它们的帮助

2 个答案:

答案 0 :(得分:3)

尼基塔。

从MySQL数据库中检索到值后,您需要将MySQL日期值转换为Unix时间(以毫秒为单位)。我用MySQL日期值填充了一个$date数组,并在数组上迭代,调用strtotime首先转换为Unix时间,然后乘以1000转换为毫秒。为了能够直接修改循环中的数组元素,我还在$ value之前用引用赋值。

foreach ($date as &$value){
  $value = strtotime( $value ) * 1000;
}

现在,$date数组中的值已转换为正确的格式,是时候从PHP数组创建一个JavaScript数组了。这可以使用join():

完成
var dateValues = [<?php echo join($date, ',') ?>];

结果数组如下所示:

var dateValues = [1356994800000,1357081200000,1357167600000, ... ];

要在ZingChart中使用此数组,请在scale-x对象中使用dateValues变量和“values”。要在ZingChart中将Unix时间值转换回日期,请添加“transform”对象,并将其设置为“type”:“date”。

"scale-x":{
  "values": dateValues,
  "transform":{
    "type":"date",
    "item":{
      "visible":false
    }
  }
},
...

这照顾了规模。要在图表中获取其他值,您几乎可以做同样的事情。将PHP数组转换为JavaScript数组,并使用图表JSON中的数组变量。

使用PHP $系列数组:

var seriesValues = [<?php echo join($series, ',') ?>];

在你的图表中JSON:

"series":[
  {
    "values":seriesValues
  }
]

我已将所有这些内容汇编成Github Gist给你。如果您有任何问题,请告诉我们!

答案 1 :(得分:2)

在GitHub上查看我们的demos repo。我们有一个专门针对connecting to a MySQL database with PHP的教程。

我们的网站也有step-by-step walkthrough

如果您分享您的JSON或有关它的更多详细信息,我可以帮助您将图表放在一起。

我在ZingChart团队。如果您有其他问题,请告诉我。