簡體   English   中英

Google圖表:與json約會

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM