2012-11-19 31 views
1
$SQLString = "SELECT  
       count(score) as counts, 
       score, month, 
       date FROM persons 
       GROUP BY day, month, year 
       ORDER BY date asc";  

    $result = mysql_query($SQLString); 
    $num = mysql_num_rows($result); 

# set heading 
    $data[0] = array('day','counts');  
    for ($i=1; $i<($num+1); $i++) 
    { 
     $data[$i] = array(substr(mysql_result($result, $i-1, "date"), 0, 10), 
      (int) mysql_result($result, $i-1, "counts")); 
    } 
    echo json_encode($data); 

这给了我这样的:[ “日”, “罪状”],[ “2012-01-20”,1],[“2012-02 -06" ,4]谷歌,图表日期范围过滤器

function drawChart() { 
      var jsonData = $.ajax({ 
       url: "charts.php", 
       dataType: "json", 
       async: false 
      }).responseText; 

      var obj = jQuery.parseJSON(jsonData); 
      var data = google.visualization.arrayToDataTable(obj); 

      var options = { 
       title: 'Counts' 
      }; 

现在,我要建立我的图表与日期范围CONTROLER:

var control = new google.visualization.ControlWrapper({ 
       'controlType': 'ChartRangeFilter', 
       'containerId': 'control', 
       'options': { 
        // Filter by the date axis. 
        'filterColumnIndex': 0, 
        'ui': { 
        'chartType': 'LineChart', 
        'chartOptions': { 
         'chartArea': {'width': '90%'}, 
         'hAxis': {'baselineColor': 'none'} 
        }, 
        // Display a single series that shows the closing value of the stock. 
        // Thus, this view has two columns: the date (axis) and the stock value (line series). 
        'chartView': { 
         'columns': [0,1] 
        }, 
        // 1 day in milliseconds = 24 * 60 * 60 * 1000 = 86,400,000 
        'minRangeSize': 86400000 
        } 
       }, 
       // Initial range: 2012-02-09 to 2012-03-20. 
       'state': {'range': {'start': new Date(2012, 1, 1), 'end': new Date(2012, 4, 20)}} 
       }); 

的问题是:

[“2012 -01-20“,1],即”2012-01-20“是一个字符串,并且该日期控制器仅适用于日期类型,我该怎么办?

感谢

回答

0

一旦你从这里的数据:

var obj = jQuery.parseJSON(jsonData); 

你可以解析OBJ与日期对象替换这些字符串日期:

for (var i = 0; i < obj.<array of some kind that holds rows> i++) { 
    obj.<array of some kind that holds rows>.<newdatefield> = 
         new Date(obj.<array of some kind that holds rows>.<datestring>); 
} 

Date conversion link: