我有一个带有工具提示的图表行,使用Flot插件通过AJAX从mysql数据库获取数据。
我在一段时间内建立了图表线,但问题是,例如,当我从2014年1月(2014年1月)到2014年12月(2014年12月)选择某个日期时,图表显示我正确值,但工具提示中的日期不正确(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 的月份是正确的。
我该如何解决?我想要一些帮助。
答案 0 :(得分:2)
这可能是因为使用您当地时区的javascript Date
对象。请记住,1388534400000在任何时区都是12月&lt; UTC默认值。
我通常不喜欢推荐库作为有效答案,但是使用默认JS Date对象的时区真的太糟糕了。如果您正在寻找世界时,https://momentjs.com/是一个不错的选择。
编辑:实际上,您可以致电getUTCMonth() + 1
以返回正确的月份