Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 高图表日期时间转换显示错误值_Php_Javascript_Highcharts - Fatal编程技术网

Php 高图表日期时间转换显示错误值

Php 高图表日期时间转换显示错误值,php,javascript,highcharts,Php,Javascript,Highcharts,下面是我在高图上的简单图表。看起来一切正常,但我现在唯一的问题是我的数据只有两个2012-05-26 01:00:00、200和2012-05-26 02:00:00300。y轴看起来很好。但在x轴上,时间显示为17:00开始,18:00结束,甚至不显示日期。有什么问题吗 <?php define('DB_HOST', '*******'); define('DB_USER', 'user1'); define('DB_PASSWORD', 'test1');

下面是我在高图上的简单图表。看起来一切正常,但我现在唯一的问题是我的数据只有两个2012-05-26 01:00:00、200和2012-05-26 02:00:00300。y轴看起来很好。但在x轴上,时间显示为17:00开始,18:00结束,甚至不显示日期。有什么问题吗

<?php
    define('DB_HOST', '*******');
    define('DB_USER', 'user1');
    define('DB_PASSWORD', 'test1');
    define('DB_DATABASE', 'db1');

 $dbcnx = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
 mysql_select_db('db1');

$sql = "select unix_timestamp(datetime1) as datetime1, value1 from data";
$result = mysql_query($sql,$dbcnx);
$data = array();
while ($row = mysql_fetch_array($result)) {
   //extract $row;
   //$datetime1 = $row['dateTime1']*1000;
   $datetime = $row['datetime1']*1000; 
   //echo $datetime;
   echo $row['value1'];
   $val  = $row['value1'];
   // convert from Unix timestamp to JavaScript time
   $data[] = "[$datetime, $val]";
}
?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highcharts Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript">
$(function () {
    $(document).ready(function() {
      //alert("TS");
      var chart = new Highcharts.Chart({
      chart: {
         renderTo: 'container',
                type: 'line',
                marginRight: 130,
                marginBottom: 25

      },

      series: 
        [{
         data: [<?php echo join($data, ',') ?>]
      }],
      xAxis: { type: 'datetime'}

   });
  });

});
        </script>
    </head>
    <body>
<script src="js/highcharts.js"></script>
<script src="js/modules/exporting.js"></script>

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

    </body>
</html>

海图示例
$(函数(){
$(文档).ready(函数(){
//警报(“TS”);
var图表=新的Highcharts.图表({
图表:{
renderTo:'容器',
键入:“行”,
marginRight:130,
marginBottom:25
},
系列:
[{
数据:[]
}],
xAxis:{type:'datetime'}
});
});
});

我不知道你通过海图的是什么数据。听上去,你只传递了两个数据点。您是否验证了查询正在提取所需的数据?如果是这样的话,你能把应该在海图上的数据贴在这里吗?另外,你能在这里发布在网页的查看源中生成的highcharts吗


对于xaxis标签,由于它们是日期时间格式,因此图表将以其认为合适的最佳方式呈现它们。如果您不喜欢它们的呈现方式,可以使用控制图表的日期时间格式。您还可以使用来控制显示日期的间隔。

数据通过mysql查询确认,格式为“2012-05-12 09:00:00”。我已经成功地格式化了,但就像一天到另一天的间隔一样,是否可以将间隔设置为每12小时一次?是的,间隔可以设置为每12小时一次。对于datetime,HighCharts使用毫秒。一小时有3600000毫秒。如果轴设置为
类型:'datetime'
,间隔设置为
tickInterval:43200000
,那么它将是12小时的间隔。为什么是43200000?为什么不是1800000呢?既然每秒有1000毫秒,如果你计算一下,那就是它的结果<代码>1000*60*60*12=43200000