我有一个使用 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 函数。我在两个函数中都放了一个警报,显示它计算的日期,但我从来没有收到警报。