如何格式化Highcharts的(x,y)对数据的日期时间

我的序列化方法产生如下日期时间字符串:“2014-07-09T12:30:41Z”

为什么以下代码不起作用?

$(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" }] }); 

});

如何转换日期时间格式或配置highcharts以使用我的数据?

显然,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" }] 

您可以在图表中使用之前预处理数据。 示例 – 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 }] }); });