2013-04-04 11 views
5

Nie mogłem zrozumieć, dlaczego data etykiety narzędziowej jest wyłączona o jeden dzień. Uważam, że oś x jest poprawna i bawię się nią, ale to mnie zabija.Błąd etykiety wykresu Flot - Data etykiety to dzień za dacem X Data

Jak mogę to naprawić?

Przechodzę w JSON z punktu końcowego URL do zmiennej jsonDataUrl. Oto przykładowy punkt danych: [{date: "2013-01-01", value: 50}]

A cssSelector jest po prostu symbolem zastępczym.

Oto mój kod:

$.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); 
     } 
    }); 
    }); 

Odpowiedz

4

Mam nadzieję, że jest OK, ale chciałbym, aby odpowiedzieć na moje własne pytanie. Cieszę się, że odkryłem ten głupi błąd! Używam Ruby on Rails, aby zebrać dane i przekazać je do Flot Chart poprzez adres URL JSON. Ponieważ serwer zapisuje dane o północy UTC, przekazywał dane do etykiety narzędzi w lokalnej strefie czasowej, całkowicie je znosząc.

Tak, zasadniczo zmieniłem date.getDate() i date.getMonth() na date.getUTCDate() i date.getUTCMonth().

+2

Tak, jest bardzo do zaakceptowania, aby odpowiedzieć na własne pytanie! Gdy system pozwala wrócić i zaakceptować odpowiedź jako poprawną (kliknij znacznik wyboru). W ten sposób pytanie zostanie zamknięte. – Mark

Powiązane problemy