我有一个使用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函数没有被调用。我在两个函数中都放置了一个警报,该警报将显示其计算的日期,但我从未收到警报。
最佳答案
您看过 API 文档吗?
https://github.com/flot/flot/blob/master/API.md#customizing-the-axes
看来您应该能够传递时区:“MST-700”或类似的内容,具体取决于您选择包含哪个库来进行时间格式化。在同一页面中搜索“时区”应该会产生更多信息。
关于javascript - JQuery Flot x 轴上的非本地化时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984245/