5

我一直无法理解为什么工具提示日期差了一天。我相信x轴是正确的,我一直在玩它,但这让我很生气。

我怎样才能解决这个问题?

我将来自 URL 端点的 JSON 传递到变量 jsonDataUrl。这是一个示例数据点:[{date: "2013-01-01", value: 50}]

而 cssSelector 只是占位符。

这是我的代码:

  $.getJSON(jsonDataUrl, function(res) {
   var data = [];
    $.each(res, function(i, entry){
      data.push( [new Date(entry["date"]), entry["value"]] );
    });

    var opts = { yaxis: { min: 0},
                 xaxis: { mode: "time", timeformat: "%m-%d"},

                 series: { lines: { show: true }, points: { show: true } },

                 grid: {hoverable: true, clickable: true}
    };

    $.plot($(cssSelector), [data], opts);

    $(cssSelector).bind("plotclick", function(event, pos, item) {
        if (item) {

            var x = parseInt(item.datapoint[0]),
                y = item.datapoint[1];
            var date = (new Date(x));
            var day = date.getDate();
            var month = date.getMonth() + 1;
            var formattedDate = month + "-" + day;

            $("#tooltip").remove();
            var label = "date: " + formattedDate + "<br/> count: " + y;
            showTooltip(item.pageX, item.pageY, label);
        }
    });
  });
4

1 回答 1

4

我希望这没问题,但我想回答我自己的问题。我很高兴我发现了这个愚蠢的错误!我正在使用 Ruby on Rails 收集数据并通过 JSON url 将其传递给 Flot Chart。由于服务器在 UTC 午夜记录数据,因此它在本地时区将数据传递到工具提示,使其完全不同步。

因此,我基本上将 date.getDate() 和 date.getMonth() 更改为 date.getUTCDate() 和 date.getUTCMonth()。

于 2013-04-05T17:05:11.923 回答