而动态记录添加

问题描述:

..所以我想添加数据通过循环来创建一个谷歌图& addRow(),这样谷歌的图表数据类型不匹配:而动态记录添加

var splicedData = data.split(","); 
    //the data var is a string with several dates in this format (string): 
    // "day/month/year | hour:minutes:seconds", separated by commas. 

    for(i = 0; i<splicedData.length-1; i++){ 

    dSplicedData = splicedData[i].split("|"); //split date and hour   
    ddSplicedData = dSplicedData[1].split(":"); // split hh, mm, ss 
    dddSplicedData = dSplicedData[0].split("/"); //split dd, mm, yy 

    chartData.addRow([ 

     [new Date (parseInt(dddSplicedData[2]), //year 
       parseInt(dddSplicedData[1]), //month 
       parseInt(dddSplicedData[0]))], //day  
     [parseInt(ddSplicedData[0]), parseInt(ddSplicedData[1]), 0] 
    ]); 
    }; 

addRow的索引0( )需要'datetime/date'数据类型,索引1需要'timeofday'。据我了解,两种类型都通过Date()方法映射到JS中。总之,看看API指示我认为我做得对,但我得到这个错误:

错误:类型不匹配。值Wed Jul 20 2016 08:00:00 GMT + 0200(CEST )与列索引中的类型datetime不匹配0“,

这很奇怪,因为该值与数据类型匹配,并且它由Date()方法生成。此外,我尝试了一个Google示例,手动插入随机日期(不循环变量值;新日期(2000,8,5)),参考here,并且它也不接受它。

+0

您可以发布[演示的jsfiddle(http://jsfiddle.net),因此,这将是很容易调试。 – Himanshu

+0

@Himanshu sure:https://jsfiddle.net/wfuhtevv/2/ – robosap1ens

检查这个JsFiddle Demo

你只需要删除周围的日期[]符号。

HTML

<div id="chart_div"></div> 

JS

// Load the Visualization API and the piechart package. 
google.charts.load('current', { 
    'packages': ['corechart'] 
}); 

// Set a callback to run when the Google Visualization API is loaded. 
google.charts.setOnLoadCallback(drawChart); 

function drawChart() { 

    var chartData = new google.visualization.DataTable(); 
    var dSplicedData = new Array(); 
    var ddSplicedData = new Array(); 
    chartData.addColumn('datetime', 'Día'); 
    chartData.addColumn('timeofday', 'Hora de entrada'); 
    /*  
     jQuery.extend({ 
      getValues: function(url) { 
       var result = null; 
       $.ajax({ 
        url: url, 
        type: 'get', 
        dataType: 'html', 
        async: false, 
        success: function(data) { 
         result = data; 
        } 
       }); 
      return result; 
      } 
     }); 

     data = $.getValues("getData.php"); */ 
    data = "19/6/2016 | 11:36:18,19/6/2016 | 11:36:44,20/6/2016 | 9:3:32"; 





    var splicedData = data.split(","); 



    for (i = 0; i < splicedData.length - 1; i++) { 

    dSplicedData = splicedData[i].split("|"); //data formatted, splitted 

    ddSplicedData = dSplicedData[1].split(":"); // split hour 
    dddSplicedData = dSplicedData[0].split("/"); //split date 

    chartData.addRow([ 

     new Date(parseInt(dddSplicedData[2]), 
     parseInt(dddSplicedData[1]), 
     parseInt(dddSplicedData[0])) 

     , 

     [parseInt(ddSplicedData[0]), parseInt(ddSplicedData[1]), 0] 


    ]); 


    }; 

    var options = { 
    chart: { 
     title: 'foo', 
     subtitle: 'bar' 
    }, 
    width: 900, 
    height: 500 
    }; 

    var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 


    chart.draw(chartData, options); 
}; 
+0

谢谢,伙计,它的工作 – robosap1ens