5

ツールチップの日付が 1 日ずれている理由がわかりません。私は x 軸が正しいと信じており、それで遊んでいますが、これは私を殺しています。

どうすればこれを修正できますか?

URL エンドポイントから変数 jsonDataUrl に JSON を渡しています。データポイントの例を次に示します。[{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 に答える