我使用flot js绘制图表。现在存储在数据库中的日期是这种形式。
2015-10-29 11:35:33
我将它转换为毫秒,传递给ajax绘制图形,该图形应该在x轴上显示日期,而不是以毫秒为单位,但是在可读日期。
如果您注意到x轴,我相信它只显示时间,因为y的值全部是同一天,同一小时但是在几分钟内略有差异。请看下面的表格显示值(total_bv) )和日期(as_of_date)。
问题是,日期显示在x轴上的日期。什么是03:3,03:38等等。我认为它的时间没有转换为正确的时区?
因为在我从数据库获取数据的PHP脚本中,我使用timezone asia / kuala lumpur。如果我不使用这个时区,x轴显示的时间从10:36,10:38开始等等。所以任何人都可以先告诉我如何显示正确的日期&时间在x轴上的可读格式?
date_default_timezone_set("Asia/Kuala_Lumpur");
$acceptedUser = new search();
$sales = $acceptedUser->get_sales_graph();
$before = array();
foreach($sales as $k=>$v)
{
$date = strtotime($v['as_of_date']) * 1000;
array_push($before, array("datey" => $date, "bv" => $v['total_bv']));
}
echo json_encode($before);
答案 0 :(得分:0)
所以看起来你有两个问题:
flot.js documentation解决了这两个问题。
首先,flot假定时间戳是UTC。如果要更改它,可以通过将轴“timezone
属性设置为browser
(根据用户的浏览器转换时间戳)来实现,或者可以使用timezone.js。然而,大多数开发人员只是假装他们正在使用的时间戳已经在正确的时区(这基本上就是你正在做的并且已经注意到了)。
其次,使用带有轴标记的timeformat
属性的显式格式字符串。该文档包含可替换格式说明符的完整列表。