2017-08-25 11 views
1

Googleの視覚化を使用して、私はUnix Epochのタイムスタンプを取得し、それを文字列の配列に変換しようとします。私はGoogleのチャートのための文字列を使用しようとするが、私のコードは次のようになりGoogle視覚化タイプの不一致

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

あなたはただ、 はGoogleのDateFormatクラス

不要の​​ために使用することをお勧めします最初の列としてフォーマットされた日付文字列をしたい場合

を達成しようとしているもので、正確には明らかではありません二つのループ、日付が

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 
    ]); 
    }); 
}); 
... forEach声明

次のスニペットを参照してくださいに直接フォーマットすることができます

+0

ありがとう!私は実際に自分で解決策を見つけていますが、あなたのやり方はずっと簡単です。しかし、あなたの方法は正しい時刻を表示しません。たとえば、 2017-8-25 18:35:56 は次のように表示されます。 2017-8-25 06:35:56 時間の修正方法は? – Ramare

+0

申し分なく、私はそれを自分で修正しました。 formatDateパターンでHHのhhを変更しました。 – Ramare

+0

よろしく!私はどのhを使うべきか決して覚えていない... – WhiteHat