0

我的图表从服务器获取数据,时间服务器 * 1000 用于转换为时间 js。这是我的图表

http://awesomescreenshot.com/03f1ft5k72

点与列日不符。我必须对每个值 + 25 000 000 以显示它匹配列日。为什么会发生这种情况,我是flot的新手。能不能分享一下你的经验。

var d_register = #{ @total.map{ |t| [t.date.to_time.to_i * 1000 , t.register] } };
// must add 25 000 000 to it for correct position point.
// var d_register = #{ @total.map{ |t| [t.date.to_time.to_i * 1000 + 25000000, t.register] } };
var curr = new Date(#{Date.current.to_time.to_i * 1000}); // get current date
define_flot();

function define_flot(){
        var first = new Date(curr.getTime() - curr.getDay() * 24 * 60 * 60 * 1000);
        var last = new Date(first.getTime() + 7 * 24 * 60 * 60 * 1000);
        $(".week-time").text(
          (first.getMonth() + 1) + '/' +
          first.getDate() + '/' +
          first.getFullYear() + ' - ' +

          (last.getMonth() + 1) + '/' +
          last.getDate() + '/' +
          last.getFullYear()  );

        var first_day_in_week = first.getTime();
        var last_day_in_week = last.getTime();
        $.plot("#placeholder", [ d_register ], {
            yaxis: {
                    tickDecimals: 0
            },
            xaxis: {
                    mode: "time",
                    minTickSize: [1, "day"],
                    min: first_day_in_week,
                    max: last_day_in_week,
                    timeformat: "%a"
            }
        });
    }

数据寄存器:

[[1370710800000,1],[1370797200000,7],[1370883600000,1],[1371056400000,0],[1371142800000,0],[1371747600000 1372006800000, 0], [1372093200000, 0], [1372179600000, 0]]

+ 25000000 之后的数据寄存器:

[[1370735800000,1],[1370822200000,7],[1370908600000,1],[1371081400000,0],[1371167800000,0],[13717772600000 1372031800000, 0], [1372118200000, 0], [1372204600000, 0]]

4

1 回答 1

0

您的屏幕截图链接似乎已损坏,但我记得问题是这些值应该与一天的开始对齐,但显示偏移了几个小时。

问题是 Flot 需要 UTC 时间戳,而你的时间戳是偏移的。例如,1370710800000 实际上是 2013 年 6 月 8 日 17:00 GMT。通过添加 25M - 1370735800000 - 变成 23:56:40,这已经足够接近以至于它似乎与日边界对齐。实际上,您要添加的是 7(小时)* 3600(秒)* 1000(毫秒)= 25200000,它补偿了我假设的美国太平洋时间 GMT-7 的本地时区偏移量。

于 2013-06-26T18:16:57.417 回答