gpt4 book ai didi

javascript - 谷歌图表 : date with json

转载 作者:行者123 更新时间:2023-11-30 12:49:37 24 4
gpt4 key购买 nike

我正在使用谷歌图表,我在将日期从 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); ?>);

错误是: Uncaught Error :类型不匹配。值 (2014, 1) 与列索引 0 中的类型日期不匹配

有人知道如何发送日期吗?以哪种格式?Google 图表需要 JS 中的“new Date(2012, 03)”

谢谢。

最佳答案

当使用 JSON 时,日期的正确格式是这样的字符串:'Date(year, month, day)'(注意没有使用 new 关键字在字符串中),其中 month 是零索引的(因此 January 是 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' 键设置数据表的列,'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)
));
}

关于javascript - 谷歌图表 : date with json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21407889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com