使用Flot jQuery插件显示带有正确时区的工具提示

| 在图形中显示xaxis标签时,Flot插件存在一些问题。他们是
\'mode: \"time\"\'
。当前,我将Flot与工具提示功能一起使用,并且工具提示包含日期和时间。 我向包含时间戳的插件提供JSON。之后,我将转换时间戳并将其显示在工具提示中。问题在于,在图形中显示数据时,由于时区之间的差异,工具提示中的时间与插件生成的xaxis标签不对应。我的JSON时间戳为+2 GMT,但Flot中的xaxis标签为+0 GMT。所以我想知道是否有可能设置时区或类似的偏移量。 我的JSON(由AJAX生成)
 [1300087800000,29],
 [1300088700000,39],
 [1300089600000,46],
 [1300090500000,53],
 [1300091400000,68],
 [1300092300000,95],
 ...
我的工具提示功能
$(placeholder).bind(\"plothover\", function (event, pos, item) {
     $(\"#tooltip\").remove();

     var x = item.datapoint[0].toFixed(2);
     var y = item.datapoint[1].toFixed(2);

     var currDate   = new Date(Math.floor(x));
     var hour       = currDate.getHours();
     var minute     = String(\"\") + currDate.getMinutes();

     var tooltip = hour + \":\" +
                   ((minute.length < 2) ? \"0\" + minute : minute) + \" \" +
                   (Math.round(y * 100)/100) + \"Wh\"
     showTooltip(item.pageX, item.pageY, tooltip);
 });  
浮选选项
 var plotOptions = {  
     lines:  { show: true, lineWidth: 1 },  
     points: { show: false, symbol: \"cross\" },  
     xaxis:  {  
         mode:   \"time\",  
         tickLength: 5,  
         timeZoneOffset: (new Date()).getTimezoneOffset()  
     },  
     selection: { mode: \"x\", color: \"#BCBCBC\" },
     grid:      { hoverable: true, clickable: false }
};
但是不幸的是
timeZoneOffset
不起作用,而且xaxis和工具提示之间仍然存在差异。 您有什么想法应该解决我的问题吗?     
已邀请:
您可以尝试使用时区而不是timeZoneOffset。您的选择如下所示:
var plotOptions = {  
     lines:  { show: true, lineWidth: 1 },  
     points: { show: false, symbol: \"cross\" },  
     xaxis:  {  
          mode:   \"time\",  
          tickLength: 5,  
          timezone: \"browser\" // \"browser\" for local to the client or timezone for timezone-js  
          },  
    selection: { mode: \"x\", color: \"#BCBCBC\" },
    grid:      { hoverable: true, clickable: false }
    };
我的flot版本是0.7     
如果查看flot问题数据库,则问题141会涉及时区。提示您使用的语法的问题484已合并到此问题中。 该文件说:   通常,您希望根据   特定时区,通常是数据所在的时区   生产的。但是,Flot始终根据UTC显示时间戳。   作为核心Java脚本的唯一替代方法是解释   根据访问者所在时区的时间戳,   这意味着滴答声将随时区发生不可预测的变化   以及每个访客的夏令时。 因此,鉴于在以下地区对自定义时区没有很好的支持 使用Javascript,您必须照顾好这个服务器端。 因此,正确的解决方案是使您的数据看起来像UTC服务器端(即使不是)。如果您无法更改数据源,则可能需要考虑代理它。服务器端语言应允许时区操作。 或者,按照问题141进行操作,并注意修补程序或插件。     
对于UTC时间戳记,请使用UTC时间函数:
var hour = currDate.getUTCHours();  // instead of getHours()
var minute = String(\"\") + currDate.getUTCMinutes(); // instead of getMinutes()
并删除xaxis时区。     

要回复问题请先登录注册