Flot错误地解释时间戳:将不同小时显示为同一小时

时间:2015-12-23 16:23:57

标签: javascript charts flot

我的图表上有以下几点:

data = [
            [1450825200, 3],
            [1450828800, 9],
            [1450832400, 8],
            [1450836000, 7],
            [1450839600, 6]
        ];

第一个值(data[0][0])是时间戳,第二个值(data[0][1])是点击量。 根据{{​​3}},在我的时区GMT + 1:00中,第一个1450825200等于当前日期和12:00 AM,数组中的下一个时间戳(1450828800)保持为1 :00 PM,第三个下午2:00等。

但根据flotcharts,我的所有时间戳都代表下午7点。当我将鼠标悬停在每个点上时,每个点显示19:00,我的x轴消失(因为tickSize设置为1小时,没有其他时间)。

我以这种方式初始化图表:

$.plot('#graphDashboard', dataSet, // dataSet[0] contains data example I've shown above
        {
            plot: true,
            xaxes: [{
                mode: "time", timeformat: "%H:%M",
                tickSize: [1, "hour"]
            }],
            yaxes: [{
                position: 'left',
                tickFormatter: function (val, axis) {
                    return val.toLocaleString();
                }
            },
                {
                    position: 'left',
                    autoscaleMargin: 0.2,
                    tickFormatter: function (val, axis) {
                        return val.toLocaleString();
                    }
                }
            ],
            tooltipOpts: {
                content: "%s (%x, %y)",
                shifts: {
                    x: -100,
                    y: -50
                },
                dateFormat: "%H:%M",
                defaultTheme: false
            },
            series: {
                stack: false,
                lines: {
                    show: true,
                    fill: false
                }
            },
            legend: {
                show: false
            }
        });

1 个答案:

答案 0 :(得分:1)

Flot time plugin基于Javascript时间戳。 Javascript时间戳是自1970年1月1日00:00:00 UTC以来毫秒的数量。您需要将时间戳(当前以秒为单位)乘以1000才能正确显示所有内容。