在Flot jQuery-plugin问题中将javascript滴答转换为日期

时间:2012-09-14 13:06:52

标签: javascript jquery datetime flot

我有一个动态的Flot图,其中x轴为日期,y轴为数字。要让Flot-plugin正确读取日期对象,我必须将日期转换为刻度(使用getTime())。我的问题是我无法在工具提示悬停在图表上时将刻度线反转回正常日期。 enter image description here

我试图用它来扭转它:

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

我得到的,无论jsTicks是什么,都是“Jan 02 0001 hh:mm:ss(几乎是当前时间)”

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

$("#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/