Javascript 如何在highstock的x轴上显示日期?

Javascript 如何在highstock的x轴上显示日期?,javascript,api,highstock,Javascript,Api,Highstock,我需要在x轴上显示日期/时间。现在在x轴上有一些奇怪的数据00 00 001 00 002。我想看1.08.2014 22.01.01(日、月、年、时、分、秒)。 我的JSON数据: [ ["30 June 2014 19:14",24], ["30 June 2014 19:16",41], ["30 June 2014 19:16",12], ["30 June 2014 19:16",8] ] 等等(时间、价值) 我的Javascript代码-它可以工作

我需要在x轴上显示日期/时间。现在在x轴上有一些奇怪的数据00 00 001 00 002。我想看1.08.2014 22.01.01(日、月、年、时、分、秒)。 我的JSON数据:

[
    ["30 June 2014 19:14",24],
    ["30 June 2014 19:16",41],
    ["30 June 2014 19:16",12],
    ["30 June 2014 19:16",8]
] 
等等(时间、价值)

我的Javascript代码-它可以工作,但不能在x轴上显示日期/时间:

var seriesOptions = [],
seriesCounter = 0,


//My data
names = ['data_input_1', 'data_input_2'],colors = Highcharts.getOptions().colors;
//My graph captions
captions = ['Датчик 1', 'Датчик 2'];
//Type of my two graph - 2 lines
type = ['line', 'line'];

//Configure graph (now 2 names so 2 graph)
$.each(names, function(i, name) 
{
//get data
$.getJSON('../graph/select_data.php?'+ name.toLowerCase() +'',  

function(data) 
{
seriesOptions[i] = 
{
name: captions[i],
data: data,
type:type[i],
//I think- this is the place for code, that i want
// it doesnot work here categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
// all other code here - work well

};

seriesCounter++;
if (seriesCounter == names.length){createChart();}
});
});
结果:


如何在x轴上显示我的两行代码的highstock日期?

问题在于JSON数据。Highstock不能立即使用这种格式在x轴上显示为
datetime
。问题在于您的字符串(例如“2014年6月30日19:14”)不正确

x轴需要以毫秒为单位的时间戳(自1970年1月1日起)。请注意,从其他来源接收的一些时间戳可能以秒为单位,而不是以毫秒为单位。如果这是个问题,你必须把它们乘以1000

当使用字符串时,Highstock并没有真正意义,所以Highstock只是假装数据的时间戳是0,1,2。。。转换为00:00.000(0毫秒)、00:00:00.001(1毫秒)、00:00:00.002(2毫秒)

您需要将日期的字符串表示形式转换为时间戳。我不确定您是否可以操作接收JSON的格式,但如果不能,您可以对其进行后期处理以转换数据,如()所示:


这里的本质是
newdate(data[i][0])
将字符串解析为日期对象,其中包含年、月、日的值。。。然后使用该对象的
getTime()
函数获取时间戳。

Ondkloss,我知道数据必须在时间戳中。我也试过这个变体。但它并没有像我想要的那样工作。我的JSON数据:[[1406772865,24],[1406772976,41],[1406772977,12],[1406772978,8],[1406830911,47],[1406838142,35],[1406843275,24]]我在第一篇文章中的javascript代码。结果转换1406772976-结果2014年7月31日星期四02:16:16 GMT Highstock show Sun,1月17日06:46:12.976 Highstock在提示中的x轴上显示错误的日期。怎么了?我道歉。在这方面,我的回答可能令人困惑。JSON数据自1起使用秒数。1970年1月。Highcharts从1开始使用millseconds。1970年1月。如果在每个时间戳后面加上三个零就可以了。我可以补充一点,
getTime
-函数也使用毫秒的时间戳,这就是为什么这种方法可以工作的原因。Ondkloss,我这样做了,但它不能正常工作。我的json现在是[[“1406772865000”,24],“1406772976000”,41],“1406772977000”,12],“1406772978000”,8],“1406830911000”,47],“1406838142000”,35],“1406843275000”,24]]结果我应该在javascript代码中修改什么“//我想-这是我想要的代码的地方”?但现在你又回到字符串上来了。无法引用。只是简单的数字,以毫秒为单位的时间戳。
var data = [
    ["30 June 2014 19:15",24],
    ["30 June 2014 19:16",41],
    ["30 June 2014 19:17",12],
    ["30 June 2014 19:18",8]
];

var timestampData = [];

for(i in data) {
    timestampData.push([new Date(data[i][0]).getTime(), data[i][3]]);
}


$('#container').highcharts({
    ...
    series: [{
        data: timestampData
    }]
});