[英]google-charts javascript arrayToDataTable from ajax
[英]Google-charts date range filter from mysql
$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);
這給了我這樣的信息: [[“ day”,“ counts”],[“ 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'
};
現在,我想用日期范圍控制器來建立圖表:
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”是一個字符串,並且日期控件僅適用於日期類型,我該怎么辦?
謝謝
從此處獲取數據后:
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> );
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.