1

我有一个数组列表作为 Highcharts 的 [x,y]。我的 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]]
}]

我的时间戳可能不定期出现。

我意识到我不能这样做,因为时间戳是字符串,它们只是被解释为点的名称。我需要将时间戳转换为 Date.UTC 吗?这是唯一的方法吗?例如2013-04-30 00:01:00 -> Date.UTC(2013,04,30,0,1,0)。我猜这将需要大量的字符串连接与 "Date.UTC(" + year +"," + month + "," + day, etc... + ")"

只是想弄清楚是否有更简单的方法可以做到这一点......谢谢。

4

2 回答 2

5

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

例如:2013 年 4 月 30 日 00:00:00:000 = 1367260200000

你可以像这样传递这个值

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

希望这对你有用。

于 2013-05-02T06:38:35.000 回答
2

这些几乎是 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')

这是一个小提琴:这里的小提琴

于 2013-05-01T22:24:47.193 回答