2

我有一个使用 flot 绘图包的项目,除了我的 x 轴(即时间)显示本地化时间的时间外,我一切正常,但我希望它显示未本地化。

例如:输入到 flot 的数据的时间是上午 7:45(从服务器到 Unix 纪元的毫秒数),但 x 轴显示上午 12:45(这是有道理的,因为我在 MST-700 中)。

我知道发送的数据是正确的,因为我单步执行了该代码并确保它是正确的。我知道 JavaScript 有正确的时间,因为我告诉它输出给出的日期并且它是正确的(正确的是它显示上午 7:45 而不是上午 12:45)。我非常确信我的问题与时区有关,因为我将时区设置为 -1200,并且上午 7:45 的数据将显示为下午 20:45。这是我的情节配置:

var plotOptions = {
            series: { shadowSize: 0 }, // drawing is faster without shadows
            yaxis: { ticks: 5 },
            xaxis: { position: "bottom", mix: minX, max: maxX, mode: "time", timeformat: "%y/%m/%d %H:%M:%S"},
            yaxes: yAxes
        };

其中 maxX 是自 unix 纪元以来从服务器读取的最新时间(以毫秒为单位),而 minX 比 maxX 以毫秒为单位少一些分钟数。

我尝试将时区设置为空,这似乎与 timeZoneOffset 一样无效。日期和时间必须保持不变,因为我无法向它们添加/减去某些指定的时区。

TL;DR 如何在没有任何本地化(无时区)的情况下让 flot 显示时间?

任何帮助将不胜感激 :)


编辑1:在对时间库(jquery.flot.time.js)进行一些测试时,我发现没有调用tickGenerator 和tickFormatter 函数。我在两个函数中都放了一个警报,显示它计算的日期,但我从来没有收到警报。

4

2 回答 2

3

你看过 API 文档吗?

https://github.com/flot/flot/blob/master/API.md#customizing-the-axes

看来您应该能够传入 timezone:"MST-700" 或类似内容,具体取决于您选择包含哪个库以进行时间格式化。通过同一页面搜索“时区”应该会产生更多信息。

于 2013-02-20T16:05:42.260 回答
1

不太清楚为什么会这样,但我设法自己解决了这个问题。我取出 jquery.flot.time.js 文件,现在 x 轴显示正确。

我有一种感觉,图书馆无视我的时区选项。

于 2013-02-20T16:40:05.147 回答