[英]Google charts : date with json
我正在使用谷歌圖表,我有一個問題,將日期從PHP傳遞給javascript
我用這個:
PHP:
$dataArray = array();
while ($resultat = $resultats->fetch_array(MYSQLI_ASSOC))
$thedate = "(".$year.", ".$month.")";
$fixe = "12";
$variable = "14";
$dataArray[] = array($thedate, (int) $fixe, (int) $variable);
JS:
var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', 'Taux fixes');
data.addColumn('number', 'Taux variables');
data.addRows(<?php echo json_encode($dataArray); ?>);
錯誤是:未捕獲錯誤:類型不匹配。 值(2014,1)與列索引0中的類型日期不匹配
有人知道如何發送日期嗎? 格式是什么? 谷歌圖表想在JS中使用“新日期(2012年,03年)”
謝謝。
使用JSON時,日期的正確格式是這樣的字符串: 'Date(year, month, day)'
(注意字符串中沒有使用new
關鍵字),其中month
為零索引(因此1月為0
不是1
)。 支持以這種方式輸入日期的唯一DataTable構造方法是將DataTable的JSON表示直接傳遞給構造函數:
var data = new google.visualization.DataTable(<?php echo json_encode($dataTable, JSON_NUMERIC_CHECK); ?>);
這需要重新配置PHP以構造適當的DataTable JSON字符串。 您需要使用'cols'
和'rows'
鍵創建一個關聯數組。 'cols'
鍵設置DataTable的列, 'rows'
鍵包含數據行:
$dataTable = array (
'cols' => array (
array('type' => 'date', 'label' => 'Date'),
array('type' => 'number', 'label' => 'Taux fixes'),
array('type' => 'number', 'label' => 'Taux variables')
),
'rows' => array()
);
while ($resultat = $resultats->fetch_array(MYSQLI_ASSOC)) {
// put results in $year, $month, $fixe, $variable
$month = $month - 1; // correcting for javascript's 0-indexed months
$dataTable['rows'][] = array('c' => array(
array('v' => "Date($year, $month, 1)"),
array('v' => $fixe),
array('v' => $variable)
));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.