PHP Laravel Echarts 柱状图显示未来12小时数据 半小时为一组数据
阅读 (3519) 2018-06-06 17:45:35
PHP Laravel Echarts 柱状图显示未来12小时数据,半小时为一组,原以为echarts 这样的插件不会支持半小时为单位,其实是被思维局限了,echart并不关心你展示的数据单位,单位都是自己设置的,所以只要能查出对应单位的数据,echarts就能展示
PHP 部份:这里的数据查询部份因为习惯了Laravel的Eloquent ORM方式,所以哪怕你用php原生DB查询,只要自己改一个mysql查询即可
public function index()
{
$datetime = [];
for ($i = 0; $i <= 12; $i++) {
$time1 = date('Y-m-d H:00:00', strtotime('+' . $i . ' hours'));
$time2 = date('Y-m-d H:29:59', strtotime('+' . $i . ' hours'));
$time3 = date('Y-m-d H:30:00', strtotime('+' . $i . ' hours'));
$time4 = date('Y-m-d H:59:59', strtotime('+' . $i . ' hours'));
$datetime[] = date('H:i', strtotime($time1)) . '~' . date('H:i', strtotime($time2));
$datetime[] = date('H:i', strtotime($time3)) . '~' . date('H:i', strtotime($time4));
$data[] = AdminBatchReview::where('schedule_time', '>=', $time1)->where('schedule_time', '<=', $time2)->where('send_flag', 1)->sum('imp_num');
$data[] = AdminBatchReview::where('schedule_time', '>=', $time3)->where('schedule_time', '<=', $time4)->where('send_flag', 1)->sum('imp_num');
}
$xAxis = json_encode($datetime);
$series = json_encode($data);
return view('admin.dashboard.home', compact(['xAxis', 'series']));
}
Echarts html
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="chart-line" class="charts" style="width: 100%;height:350px;"></div>
Echarts js
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('chart-line'));
// 指定图表的配置项和数据
var option = {
title: {
text: ''
},
tooltip : {
trigger: 'axis',
axisPointer : { // 坐标轴指示器,坐标轴触发有效
type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
}
},
legend: {
data:['发送量']
},
dataZoom: [
{
id: 'dataZoomX',
type: 'slider',
xAxisIndex: [0],
filterMode: 'filter',
end: 50,
}
],
grid: {
},
xAxis : [
{
type : 'category',
data: {!! $xAxis !!}, // 这里用你的模板语言输出 json数据即可,此处为laravel blade
axisTick: {
alignWithLabel: true
}
}
],
yAxis : [
{
type : 'value'
}
],
series : [
{
name:'发送量',
type:'bar',
data: {!! $series !!} // 这里用你的模板语言输出 json数据即可,此处为laravel blade
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
更新于:2018-06-29 09:53:39