Highcharts:x值的日期(Highcharts: x-value as date)

2019-09-01 16:10发布

我有数组作为[X,Y]为Highcharts的列表。 我的x值的格式为时间戳2013-04-30 00:04:00

下面是的Highchart选项的示例:

series: [{
            name: '2013-04-30',
            data: [['2013-04-30 00:00:00', 30], ['2013-04-30 00:01:00', 32], ['2013-04-30 00:02:00', 40], ['2013-04-30 00:03:00', 21], ['2013-04-30 00:04:00', 28]]
}]

我的时间戳将不定期发生。

我意识到,我不能这样做BC的时间戳是字符串,他们只是得到解释为点的名称。 我需要的时间戳转换成Date.UTC? 这是唯一的办法? 例如2013-04-30 00:01:00 -> Date.UTC(2013,04,30,0,1,0) 我猜这会占用大量的字符串连接用“Date.UTC(” +一年+“” +月+“” +天,等... +‘)’

只是想弄清楚是否有这样做的更简单的方法...谢谢。

Answer 1:

这些几乎是ISO日期字符串这看起来像“2013-04-03T00:00:00”, Date(string)构造函数可以采取ISO字符串。

在Chrome工作。 (如果你在末尾添加Z,其作为UTC时间。如果你把它关闭,其作为本地时间。有字符串,如果你需要一个追加为不同的时区。)

var d = '2013-04-30 00:00:00Z';
var date = new Date(d);

在Firefox和IE9你必须添加“T”。 (如在2013-04-30T00:00:00Z)

所以,你可以在所有三个使用:

var d = '2013-04-30 00:00:00';
var date = new Date(d.replace(' ', 'T') + 'Z')

这里有一个小提琴: FIDDLE HERE



Answer 2:

是的,你可以使用UNIX时间戳我的意思是在毫秒的时间戳去。 highcharts接受它们作为x轴的日期 - 时间型直接整数输入。

例如:30/04/2013 00:00:00:000 = 1367260200000

你可以通过这样的价值

data: [[1367260200000, 30],[1367260260000, 32], ....]

希望这将是你的使用。



文章来源: Highcharts: x-value as date