2017-08-25 65 views
1

使用谷歌可視化我得到Unix時代時間戳並嘗試將其轉換爲字符串數組。我嘗試使用字符串谷歌圖表,但得到一個錯誤谷歌可視化類型不匹配

Type mismatch. Value 2017-8-25 16:23:54,2017-8-25 16:11:54,... does not match type string in column index 0 

我的代碼如下所示:

var jsonData = $.ajax({ 
    url: "JSONurl", 
    type: "GET", 
    dataType: 'json', 
}).done(function (dataJson) { 
    var mass = []; 
    for (var i = 0; i < dataJson.length; i++) { 
     //console.log(data[i].dateExecutes.toString()); 
     var dateEx = new Date(dataJson[i].dateExecutes); 
     var year = dateEx.getFullYear(); 
     var month = dateEx.getMonth()+1; 
     var day = dateEx.getDate(); 
     var hours = dateEx.getHours(); 
     var mins = dateEx.getMinutes(); 
     var secs = dateEx.getSeconds(); 
     var newDate = (year + '-' + month + '-' + day + ' ' + hours + ':' + mins + ':' + secs); 
     mass[i] = newDate; 
    } 
    //console.log(mass); 
    var data = new google.visualization.DataTable(); 
    //var date1 = new Date(jsonData.dateExecutes); 
    //var date2 = date1.toGMTString(); 
    //alert(jsonData.dateExecutes); 
    data.addColumn('string', mass); 
    data.addColumn('number', 'passed'); 
    data.addColumn('number', 'failed'); 
    //data.addColumn({type: 'number', role: 'tooltip', id: 'testRunId'}); 
    dataJson.forEach(function (row) { 
      data.addRow([ 
      mass, 
      row.passed, 
      row.failed 
     ]) 
    }); 

如何使用數組中的列?如何從數組中構建單元格? 請,任何幫助

回答

0

你要完成

如果你只是想格式化的日期字符串作爲第一列, 建議使用谷歌的DateFormat

不需要什麼並不很清楚兩個循環,日期可以直接在forEach聲明

看到下面的代碼片段格式...

var jsonData = $.ajax({ 
    url: "JSONurl", 
    type: "GET", 
    dataType: 'json', 
}).done(function (dataJson) { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Date'); 
    data.addColumn('number', 'passed'); 
    data.addColumn('number', 'failed'); 

    var formatDate = new google.visualization.DateFormat({ 
    pattern: 'yyyy-MM-dd hh:mm:ss' 
    }); 

    dataJson.forEach(function (row) { 
    var rowDate = new Date(row.dateExecutes); 
    data.addRow([ 
     formatDate.formatValue(rowDate), 
     row.passed, 
     row.failed 
    ]); 
    }); 
}); 
+0

非常感謝!我自己實際上找到解決方案,但你的方式看起來更容易。但是你的方法沒有顯示正確的時間,例如: 2017-8-25 18:35:56 顯示爲: 2017-8-25 06:35:56 如何解決小時? – Ramare

+0

好吧,我自己修復了它。剛剛在formatDate模式中改變了HH。 – Ramare

+0

歡呼!我永遠不會記得使用哪個h ...... – WhiteHat