2014-09-22 38 views
2

我的序列化方法結果的日期時間字符串是這樣的:「2014-07-09T12:30:41Z」如何格式化爲(X,Y)對數據的日期時間爲Highcharts

爲什麼下面的代碼不能正常工作?

$(function() { 
$('#container').highcharts({ 
    xAxis: { 
     type: 'datetime' 
    }, 

    series: [{ 
     data: [ 
      {x:"2014-07-09T12:30:41Z",y: 29.9}, 
      {x:"2014-09-09T12:30:41Z", y:71.5} 
     ], 
     name: "Teste" 
    }] 
}); 

});

此代碼的工作完美:

$(function() { 
$('#container').highcharts({ 
    xAxis: { 
     type: 'datetime' 
    }, 

    series: [{ 
     data: [ 
      {x:Date.UTC(2014, 0, 1),y: 50}, 
      {x:Date.UTC(2014, 2, 1), y:20} 
     ], 
     name: "Teste2" 
    }] 
}); 

});

如何轉換datetime格式或配置highcharts以處理我的數據?

+0

我剛更新了我的答案,請看看它。謝謝! – Josep 2014-09-22 08:06:34

回答

3

顯然Highcharts一定是在日以來的毫秒數「1970年1月1日00:00:00」世界時,這就是Date.UTC()檢索,這樣你就可以完成同樣的事情這樣做:

series: [{ 
    data: [ 
     {x:(new Date("2014-07-09T12:30:41Z")).getTime(),y: 29.9}, 
     {x:(new Date("2014-09-09T12:30:41Z")).getTime(), y:71.5} 
    ], 
    name: "Teste" 
}] 
3

您可以在使用圖表之前預先處理數據。示例 - http://jsfiddle.net/Jx5n2/3851/

var data = [{ 
    x: "2014-07-09T12:30:41Z", 
    y: 29.9 
}, { 
    x: "2014-09-09T12:30:41Z", 
    y: 71.5 
}], 
len = data.length, 
i = 0, 
outData = []; 

for (i = 0; i < len; i++) { 
    outData[i] = { 
     x: Date.parse(data[i].x), 
     y: data[i].y 
    } 
} 

$(function() { 
    $('#container').highcharts({ 
     xAxis: { 
      type: 'datetime' 
     }, 
     series: [{ 
      data: outData 
     }] 

    }); 
}); 
相關問題