在 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 正确的月份
我有一个带有工具提示的图表线,使用 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 正确的月份