Google Chart在x轴上绘制趋势线

我需要用趋势线绘制谷歌折线图,但是我使用Ajax请求来获取数据

在ajax文件中,我在一个数组中插入graphics的元素,然后以JSON格式转换它:

$reply= json_encode($array); echo $reply; 

这是我的ajax答复的内容:

 reply = [ ["Periodo","Rome","Milan","Test"], ["20160830",1,2,3], ["20160831",2,3,6], ["20160901",2,3,20], ["20160902",20,30,12] ]; 

在我的程序中,像这样填充graphics:

 var replyJSON = JSON.parse(reply); var data = google.visualization.arrayToDataTable(replyJSON); 

这是一个类似的例子,我有什么,我会做什么,但在这里我不能复制ajax调用: http : //jsfiddle.net/roby492/srrrn9sa/384/

我需要得到答复JSON,在jQuerydate转换datestring以正确显示趋势线。

我该怎么做? 或者我怎么能通过Ajax发送date而不是string的JSON?

谢谢。 罗伯托·R

看看这个PHP到谷歌图表通过ajax的例子

在这里推荐类似的设置

该示例构build了可供Google使用的JSON

它允许直接从JSON创buildDataTable

以下是构buildJSON的答案摘录

 $rows = array(); $table = array(); $table['cols'] = array( array('label' => 'Time', 'type' => 'string'), array('label' => 'Wind_Speed', 'type' => 'number'), array('label' => 'Wind_Gust', 'type' => 'number') ); while ($row = mysql_fetch_assoc($sqlResult)) { $temp = array(); $temp[] = array('v' => (string) $row['Time']); $temp[] = array('v' => (float) $row['Wind_Speed']); $temp[] = array('v' => (float) $row['Wind_Gust']); $rows[] = array('c' => $temp); } $table['rows'] = $rows; echo json_encode($table); 

要在JSON中使用实际的date列,会有点棘手

主要是因为JavaScript中的月份数字是基于零的,不像php

所以如果你在php中格式化date,需要减less1个月的数字

这使得一个冗长的格式声明

在JSON中传递一个date,你可以使用下面的格式,注意它作为一个string传递…

"Date(2016, 8, 28, 15, 34, 40)" – >相当于今天的date
再次,该月份为零(8 = 9月)

所以build立一个date在这种格式在PHP中,您可以使用以下…

 $date1 = new DateTime(); $date2 = "Date(".date_format($date1, 'Y').", ".((int) date_format($date1, 'm') - 1).", ".date_format($date1, 'd').", ".date_format($date1, 'H').", ".date_format($date1, 'i').", ".date_format($date1, 's').")"; 

产生上面显示的"Date(...)"

调整从其他答案包括date列片段,可能看起来像这样…

 $rows = array(); $table = array(); $table['cols'] = array( array('label' => 'Date', 'type' => 'date'), array('label' => 'Wind_Speed', 'type' => 'number'), array('label' => 'Wind_Gust', 'type' => 'number') ); while ($row = mysql_fetch_assoc($sqlResult)) { $date1 = $row['Date']; $date2 = "Date(".date_format($date1, 'Y').", ".((int) date_format($date1, 'm') - 1).", ".date_format($date1, 'd').", ".date_format($date1, 'H').", ".date_format($date1, 'i').", ".date_format($date1, 's').")"; $temp = array(); $temp[] = array('v' => (string) $date2); $temp[] = array('v' => (float) $row['Wind_Speed']); $temp[] = array('v' => (float) $row['Wind_Gust']); $rows[] = array('c' => $temp); } $table['rows'] = $rows; echo json_encode($table); 

通过php的ajax获得上述结果,你可以直接创build表

 var data = new google.visualization.DataTable(reply); 

不需要parsingJSON或使用arrayToDataTable