Jquery 使用flot.tooltip设置动态时间格式

Jquery 使用flot.tooltip设置动态时间格式,jquery,time,tooltip,flot,Jquery,Time,Tooltip,Flot,我正在使用flot.tooltip插件,用于flot,我的数据是一个时间序列。用户可以选择要绘制的数据的时间范围(从7天到“所有数据”的7个不同步骤),flot相应地重新格式化x轴-“1月03日、1月04日等”如果是7天,“1月、2月等”如果是1年,等等 问题是,在使用工具提示时,日期没有格式化,因为它只是获取原始unix时间戳,在工具提示中提供类似138887…的输出 有一个时间格式选项,但由于我的数据集可以由用户更改,因此此选项不起作用。有没有一种方法可以使用flot.tooltip插件动态

我正在使用
flot.tooltip
插件,用于
flot
,我的数据是一个时间序列。用户可以选择要绘制的数据的时间范围(从7天到“所有数据”的7个不同步骤),flot相应地重新格式化x轴-“1月03日、1月04日等”如果是7天,“1月、2月等”如果是1年,等等

问题是,在使用工具提示时,日期没有格式化,因为它只是获取原始unix时间戳,在工具提示中提供类似
138887…
的输出

有一个时间格式选项,但由于我的数据集可以由用户更改,因此此选项不起作用。有没有一种方法可以使用flot.tooltip插件动态格式化时间戳数据

现行相关代码如下:

tooltip: true,
tooltipOpts: {
  content: function(label, xval, yval) {
    var section = $("#select-buttons").find('li.selected a')[0].innerHTML;
    switch (section) {
    case "Country":
      return xval + ':\n ' + yval + ' users from ' + label
      break;
    ...
    }
  },
}
解决方案:
我不得不从接受的答案中改变一些东西,最明显的是
plot.getXAxes()
plot.getAxes().xaxis
。此外,我还必须将绘图创建为命名变量,以便访问
plot.getAxes().xaxis
,然后调用
plot.draw()在末尾-在初始
$之前。绘图(…)
就在函数内部

您必须自己应用格式设置。在
内容
回调中类似这样的内容:

tooltipOpts: {
    content: function(label, xval, yval, flotItem){
        var xAxis = plot.getXAxes();
        var range = (xAxis.max - xAxis.min);

        if (range > 3.15569e10){
          // range is larger than a year, just show year
          return $.plot.formatDate(new Date(xval), '%Y');

        }else if (range > 2.62974e9){
          // range is less than a year, larger than a month, show month names
          return $.plot.formatDate(new Date(xval), '%m');

        }else if (range > 604800000){                                    
          // range is less than a month, larger than a week
          etc...

        }else if (range > 86400000){
          // range is less than a week, larger than a day
          etc...

        }else{
          etc...
        }

    }
},

我正在使用
jquery.flot.time.js
中的flots数据格式化功能,如果它不够先进,不能满足您的需要,我建议大家喝一杯。我不得不改变一些小事情,最明显的是
plot.getXAxes()
plot.getAxes().xaxis
,但我会将它们包括在我的OP中,以防它能帮助其他人解决这个问题。再次感谢!