【问题标题】:Error showing info in Flot chart line tooltip在 Flot 图表线工具提示中显示信息时出错
【发布时间】:2018-03-29 03:53:59
【问题描述】:

我有一个带有工具提示的图表线,使用 Flot 插件通过 AJAX 从 mysql 数据库获取数据。

我在一段时间内建立了图表线,但问题是,例如,当我选择从 2014 年 1 月 (01/2014) 到 2014 年 12 月 (12/2014) 的某个日期时,图表显示我是正确的值,但工具提示 (12/2013) 中的日期不正确,如下所示:

我检查了时间戳,例如,这是 2014 年 1 月 1 日的时间戳:1388534400000(已经乘以 1000)。

所以我显示这样的信息:

$("#graph").bind("plothover", function (event, pos, item) {

    if (item) {
        var x = item.datapoint[0],
        y = item.datapoint[1];

        var date = new Date(x); //1388534400000 = 2014-01-01
        var amount = $.number(y,2);

        $("#tooltip").html("<b>"+item.series.label+"</b>"+"<br>Fecha: " + ('0' + (date.getMonth()+1)).slice(-2) + '/'+ date.getFullYear()+ " | Amount: S/ "+amount).css({top: item.pageY+5, left: item.pageX+5}).fadeIn(200);                   
        } else {
            $("#tooltip").hide();
        }

    });

但它仍然显示从一个月前开始:

并且序列在一个月前仍在继续,但 xaxis 中的几个月是正确的。

我该如何解决?我需要一些帮助。

【问题讨论】:

    标签: javascript jquery flot


    【解决方案1】:

    这可能是因为 javascript Date 对象使用您的本地时区。请记住,1388534400000 在任何时区中都是 12 月

    我通常不喜欢推荐库作为有效答案,但带有默认 JS Date 对象的时区真的很糟糕。如果您正在寻找通用时间,https://momentjs.com/ 是一个不错的选择。

    编辑:实际上,您可以致电getUTCMonth() + 1 以返回正确的月份

    【讨论】:

    • 还有.getUTCFullYear()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多