Zing 图表:如何在表单 post 上的两个时间戳之间自动设置缩放?
Zing Charts : How to automatically set zoom between two timestamps on form post?
我有一个 Zingchart 面积图,在 X 轴上绘制了时间。它只是显示在时间尺度上发生的事件。
像这样:
如您所见,x 轴上有日期和时间。我有一个表格,用户可以在其中 select 开始时间和结束时间 我希望图表仅在图表上显示该时间范围,就像缩放功能一样,但应该在发布表格时自动发生。
这是我想要的输出
上午 8 点到上午 10 点之间的图表日期:15-2-2017
我已经尝试 selecting 查询 w.r.t 运行时间(绿色条)。但它打破了图表,因为有时图表不理解从哪里绘制下一个值,因为它不在用户 selected 时间范围内。
SQL 查询是:
$query = "SELECT * FROM `Admill1` WHERE ((Date>='$from' AND Date<='$to') AND (RunTime BETWEEN '$fr_time' AND '$to_time' )) ORDER BY SNo ASC";
所以唯一的选择是在前端进行。我想将图形缩放动态设置为用户在表单中发布的时间范围。
如果您需要更多信息,请告诉我。任何帮助将不胜感激,谢谢。
在您的区域图上缩放到一组特定的时间非常简单。
您的 scaleX 配置可能与此类似:
scaleX:{
minValue:1262308703000,
步骤:86400000,
缩放:真实,
zoomToValues: [1262654303000,1264727903000], //时间戳
转变:{
类型:'date'
}
},
zoomToValues:[起始时间戳,结束时间戳] 是您需要利用来放大特定时间范围的属性。这些值必须在标尺的最小值和最大值内才能工作。您只需要传递缩放范围(以毫秒为单位的开始和结束时间戳)。
这是一个演示:
以上答案非常有效。我正在发布我如何在我的代码中为其他人使用上述答案。
- 将 php 中的时间转换为 unix 时间。
在 zingchart 脚本中嵌入 PHP 代码。
<?php
$from = "2017-02-16";
$to = "2017-02-16";
$fr_time = "08:00:00";
$to_time = "10:00:00";
$from_gmt = $from . " " . $fr_time . " " . "GMT+5";
$from_unix = strtotime($from_gmt) . "000";
$to_gmt = $to . " " . $to_time . " " . "GMT+5";
$to_unix = strtotime($to_gmt) . "000";
?>
<script>
...
...
"scaleX": {
"zooming": true,
"item": {
"angle": -90,
"color": "#696969"
},
"items-overlap": false,
"max-items": 30,
"step": "minute",
<?php
if($ignoretime == "no")
{
echo "zoomToValues: [$from_unix,$to_unix],";
}
?>
"transform": {
"type": "date",
"all": "%d.%m.%Y<br />%H:%i:%s",
"item": {
"visible": false
}
}
},
...
...
</script>
我有一个 Zingchart 面积图,在 X 轴上绘制了时间。它只是显示在时间尺度上发生的事件。 像这样:
如您所见,x 轴上有日期和时间。我有一个表格,用户可以在其中 select 开始时间和结束时间 我希望图表仅在图表上显示该时间范围,就像缩放功能一样,但应该在发布表格时自动发生。
这是我想要的输出
上午 8 点到上午 10 点之间的图表日期:15-2-2017
我已经尝试 selecting 查询 w.r.t 运行时间(绿色条)。但它打破了图表,因为有时图表不理解从哪里绘制下一个值,因为它不在用户 selected 时间范围内。
SQL 查询是:
$query = "SELECT * FROM `Admill1` WHERE ((Date>='$from' AND Date<='$to') AND (RunTime BETWEEN '$fr_time' AND '$to_time' )) ORDER BY SNo ASC";
所以唯一的选择是在前端进行。我想将图形缩放动态设置为用户在表单中发布的时间范围。
如果您需要更多信息,请告诉我。任何帮助将不胜感激,谢谢。
在您的区域图上缩放到一组特定的时间非常简单。
您的 scaleX 配置可能与此类似:
scaleX:{ minValue:1262308703000, 步骤:86400000, 缩放:真实, zoomToValues: [1262654303000,1264727903000], //时间戳 转变:{ 类型:'date' } },
zoomToValues:[起始时间戳,结束时间戳] 是您需要利用来放大特定时间范围的属性。这些值必须在标尺的最小值和最大值内才能工作。您只需要传递缩放范围(以毫秒为单位的开始和结束时间戳)。
这是一个演示:
以上答案非常有效。我正在发布我如何在我的代码中为其他人使用上述答案。
- 将 php 中的时间转换为 unix 时间。
在 zingchart 脚本中嵌入 PHP 代码。
<?php $from = "2017-02-16"; $to = "2017-02-16"; $fr_time = "08:00:00"; $to_time = "10:00:00"; $from_gmt = $from . " " . $fr_time . " " . "GMT+5"; $from_unix = strtotime($from_gmt) . "000"; $to_gmt = $to . " " . $to_time . " " . "GMT+5"; $to_unix = strtotime($to_gmt) . "000"; ?> <script> ... ... "scaleX": { "zooming": true, "item": { "angle": -90, "color": "#696969" }, "items-overlap": false, "max-items": 30, "step": "minute", <?php if($ignoretime == "no") { echo "zoomToValues: [$from_unix,$to_unix],"; } ?> "transform": { "type": "date", "all": "%d.%m.%Y<br />%H:%i:%s", "item": { "visible": false } } }, ... ... </script>