2

我有一个动态 Flot 图,x 轴上是日期,y 轴上是数字。为了让 Flot 插件正确读取日期对象,我必须将日期转换为刻度(使用getTime())。我的问题是我无法在我的工具提示悬停在图表上时将刻度恢复到正常日期。 在此处输入图像描述

我试图用这个来扭转它:

dateTimeObject = new Date((jsTicks - 621355968000000000) / 10000);

无论 jsTicks 是什么,我得到的都是“Jan 02 0001 hh:mm:ss (almost current time)”

我究竟做错了什么?

4

1 回答 1

2

这在某种程度上取决于您在创建数据时是否考虑了浏览器的时区。plotclick在orplothover事件中处理此问题的简单方法如下:

$("#placeholder").bind("plotclick", function(event, pos, item) {
    var x = item.datapoint[0],
    y = item.datapoint[1].toFixed(2);
    var dt = new Date(x);
    var label = 'At '+dt.toLocaleTimeString()+' ';
    //now display this label
}

如果您在数据中考虑时区,则需要一个看起来更像这样的时区:

$("#placeholder").bind("plotclick", function(event, pos, item) {
    var x = item.datapoint[0],
    y = item.datapoint[1].toFixed(2);
    var userTZ = new Date();
    userTZ = userTZ.getTimezoneOffset()*60*1000;
    var dt = new Date(x+userTZ);
    var label = 'At '+dt.toLocaleTimeString()+' ';
    //now display this label
}

一个有时区的例子:http: //jsfiddle.net/ryleyb/utNaJ/

于 2012-09-14T15:36:03.033 回答