2011-11-02 34 views
2

我有一个Highstock图表,并且我从一个MySQL数据库获取数据,如this example中所示。在Highstock中显示的MySQL日期

日期字段是MySQL时间戳。当我将光标置于一个值上时,只显示年份而不是(日,月,日,年)。

关于为什么只显示一年的任何想法?

我使用笨框架和服务器端的代码如下所示:

 $sql = "SELECT UNIX_TIMESTAMP(sop_date)*1000 AS sop_date, sop_price 
       FROM share 
       INNER JOIN share_operation 
        ON share_operation.sop_idsha = share.sha_id 
       INNER JOIN share_operation_type 
        ON share_operation_type.sot_id = share_operation.sop_idsot"; 

     $params = array($sha_idcon, $sha_idwal); 
     $query = $this->db->query($sql, $params); 

     if ($query->num_rows() > 0) { 
      $data = array(); 

      foreach ($query->result() as $i => $row) { 
       $data[] = "[$row->sop_date, $row->sop_price]"; 
      } 

      return ($data); 
     } 

客户端:

$(document).ready(function() { 

     Highcharts.setOptions({ 
     lang: { 
      months: ['Gener', 'Febrer', 'Març', 'Abril', 'Maig', 'Juny', 
        'Juliol', 'Agost', 'Setembre', 'Octubre', 'Novembre', 'Desembre'], 
      weekdays: ['Dilluns', 'Dimarts', 'Dimecres', 'Dijous', 'Divendres', 'Dissabte', 'Diumenge'], 
      rangeSelectorFrom: 'Des de', 
      rangeSelectorTo: 'Fins' 
     } 
     }); 


     window.chart = new Highcharts.StockChart({ 
     chart : { 
      renderTo : 'graphic' 
     }, 

     rangeSelector : { 
      selected : 1 
     }, 

     title : { 
      text : 'Xisco' 
     }, 

     xAxis : { 
      maxZoom : 14 * 24 * 3600000 // fourteen days 
     }, 

     series : [{ 
      name : 'Xisco',      
      data : [<?php echo join($data, ',') ?>],       
      tooltip: { 
       yDecimals: 2 
      } 
     }] 
     }); 
      }); 
+0

当你不在'setoptions'中设置'lang'时会发生什么? – abhinav

+0

没有任何反应,是一样的 – CardellCr

+0

数据如何显示:data:[[1322321409000,80],[1322321409000,80],[1320308366000,22]] – CardellCr

回答

0

强制执行格式化功能可能会解决这个问题。

tooltip: { 
    formatter: function() { 
     return Highcharts.dateFormat('%e. %b %Y', this.x); 
    } 
} 

更多信息,在documentation. 希望这有助于。