在 Flot 图表线工具提示中显示信息时出错

Error showing info in Flot chart line tooltip

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

我得到了一段时间内建立的图表线,但问题是,例如,我 select 从 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 Date 对象使用您当地的时区。请记住,1388534400000 在任何 < UTC 默认值的时区都是十二月。

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

编辑: 实际上,您可以调用 getUTCMonth() + 1 到 return 正确的月份