Google图表类型不匹配将时间值绘制到图表中

时间:2014-09-21 15:15:15

标签: laravel time charts google-visualization

您好我正在尝试使用Google图表绘制图表,该图表会显示start_day vs sub_task的{​​{1}},我正在使用数据库来检索我的数据而我正在转换我将数据转换为JSON对象以绘制到图表上但是我收到以下错误:

estimated_duration

这就是我如何绘制我的数据:

Uncaught Error: Type mismatch. Value 
01:00:00,02:20:00,00:20:00,02:20:00,01:23:00,02:20:00,02:20:00,01:00:00,
01:23:00,01:00:00 does not match type datetime in column index 1 
 format+en_GB,default+en_GB,ui+en_GB,corechart+en_GB.I.js:169

我的数据库中的数据值采用以下格式:

@extends("layouts.master")
@section("content")

<div id="visualization" style="width: auto; height: 400px;"></div>
<script type="text/javascript" src="//www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('visualization', '1', {packages: ['corechart']});
</script>
<script>
    function drawVisualization() {
    // Create and populate the data table.
    var dataTable= new google.visualization.DataTable();
    dataTable.addColumn('datetime', 'Year');
    dataTable.addColumn('datetime', 'estimated_duration');
    dataTable.addRows([
  [new Date({{ json_encode($start_day) }}),{{ json_encode($estimated_duration) }} ]]);


  new google.visualization.DateFormat({pattern: 'yyyy/MM/dd HH:mm:ss'}).format(dataTable, 0);

    // Create and draw the visualization.
     var chart = new google.visualization.LineChart(document.getElementById('visualization'));
  chart.draw(dataTable, {curveType: "function"});   
  }      

  google.setOnLoadCallback(drawVisualization);


</script>
@stop

在laravel中,我正在检索存储库中的数据:

`start_day` = `2013-02-10`
`duration` = `01:00:00`

然后在我的控制器中将值传递给视图

public function subtaskDurationReport() {
      return \Auth::user()->subtasks()->limit(10)->get();
}

我做错了吗?我需要转换public function reports() { $subtask = $this->subtask->subtaskDurationReport(); return View::make('subtasks.reports') ->with([ 'start_day' => $subtask->lists('start_day'), 'estimated_duration' => $subtask->lists('estimated_duration') ]); } 还是start_day格式?任何建议和意见都是有价值的。

1 个答案:

答案 0 :(得分:-1)

尝试使用此代码代替您的代码:

dataTable.addRows(new Date( {{ json_encode($start_day) }}),{{ json_encode($estimated_duration) }} );