https://blog.csdn.net/shenpengchao/article/details/59073589

先上一张效果图

这边用的是echarts插件http://echarts.baidu.com/

上代码(小白写的 别追求什么屌逼代码,就是冗余的面向过程,不服你来咬我)

<div>
<button onclick="zhou()" class="btnweek week active" style="margin-left: 300px">按周排</button>
      <button onclick="yue()" class="btnweek month" style="margin-left: 100px">按月排</button>
</div> <!-- 为 ECharts 准备一个具备大小(宽高)的 DOM -->
<div id="main" style="width: 95%;height:400px;"></div>
<script type="text/javascript">
zhou();
function zhou() {
var myChart = echarts.init(document.getElementById('main'));
$(".week").attr("class","btnweek week active");
$(".month").attr("class","btnweek month");
$.get('?act=welcome&op=index&get_data=week',function(data){
myChart.setOption(data);
},'json');
}
function yue(){
var myChart = echarts.init(document.getElementById('main'));
// 异步加载数据
$(".week").attr("class","btnweek week");
$(".month").attr("class","btnweek month active");
$.get('?act=welcome&op=index&get_data=month',function(data){
myChart.setOption(data);
},'json');
}
</script>

这些是html代码,需要引入一个erchars.js文件 可以从上面网址down下来,接下来上统计的代码

/*
*
* VIP列表
*
*/ public function indexOp()
{
$model_shop = Model('shop');
$model_admin = Model('admin');
$model_member = Model('member');
$model_ap = Model('ap');
$user=$this->getAdminInfo();
$admin=$model_admin->getOneAdmin($user["id"]);
if($admin["admin_area"]){
$condition["areacode"]=array("in",$admin["admin_area"]);
} //ap
$shop_id = $model_shop->getShopList($condition, '*');
$sid=array();
foreach($shop_id as $shid){
$sid[]=$shid["id"];
}
$condition_ap["shop_id"]=array("in",$sid); if ($_GET['get_data']=='week') {
echo $this->get_json_arr(6);
}else if ($_GET['get_data']=='month') {
echo $this->get_json_arr(30);
}else{
Tpl::showpage('welcome.index');
}
} public function get_json_arr($num=6){
$model_shop = Model('shop');
$model_ap = Model('ap');
//统计商铺
for($i=$num;$i>=0;$i--){
$daystr=date('Y-m-d', strtotime("-$i day"));
$searchstr="TO_DAYS(from_unixtime(addtime,'%Y-%m-%d'))=TO_DAYS('".$daystr."')";
$shopCount=$model_shop->where($searchstr)->count();
$shopDayCountArray[]=$shopCount;
}
//统计ap
for($i=$num;$i>=0;$i--){
$daystr=date('Y-m-d', strtotime("-$i day"));
$searchstr="TO_DAYS(from_unixtime(addtime,'%Y-%m-%d'))=TO_DAYS('".$daystr."')";
$apCount=$model_ap->where($searchstr)->count();
$dateArray[]=date('m-d', strtotime("-$i day"));
$apDayCountArray[]=$apCount;
}
// echo "<pre>";
// print_r($dateArray);die;
if ($num==6) {
$title='近一周的商铺和AP的统计';
}else{
$title='近一月的商铺和AP的统计';
}
//处理json包
$json_arr = array(
'title'=>array('text'=>$title),
'tooltip'=>array('trigger'=>'axis'),
'legend'=>array('data'=>array('商铺','AP')),
'toolbox'=>array(
'show'=>true,
'feature'=>array(
'dataZoom'=>array('yAxisIndex'=>'none'),
'dataView'=>array('readOnly'=>false),
'magicType'=>array('type'=>array('line','bar')),
'restore'=>array(),
'saveAsImage'=>array()
),
), 'xAxis'=>array('type'=>'category','boundaryGap'=>false,'data'=>$dateArray),
'yAxis'=>array('type'=>'value','interval'=>1,'min'=>0,'axisLabel'=>array('formatter'=>'{value} 个')),
'series'=>array(
array(
'name'=>'商铺',
'type'=>'line',
'data'=>$shopDayCountArray
),
array(
'name'=>'AP',
'type'=>'line',
'data'=>$apDayCountArray
)
)
);
return json_encode($json_arr);exit;
}

php统计近一周和近30天的用户数据的更多相关文章

  1. antdv时间选择a-date-picker设置日期可选范围(近一周、近半月、近一月等) - moment.js

    Vue->Template: <a-date-picker v-model="value" :disabled-date="disabledDate" ...

  2. mysql查询出近一周,三个月,一年的数据

    SELECT * FROM 表名 WHERE 时间字段>DATE_SUB(CURDATE(), INTERVAL YEAR) 一年 SELECT * FROM 表名 WHERE 时间字段> ...

  3. MySQL 统计上一周从周一到周日的用户

    这个功能按理说很常见,奇怪的是很难搜索到一个合适的.稍微整理了下,具体的就不展开了,注意这个表中的时间为毫秒,这条语句拷贝复制就能用.照顾大部分的无脑码农. SELECT case when FROM ...

  4. PHP 获取上月,本月,近15天,近30天日期

    <?php //echo $_SERVER['PHP_SELF']; //define('ROOT_PATH',str_replace($_SERVER['PHP_SELF'],'',str_r ...

  5. mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

    mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句 这篇文章主要介绍了mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句,一般在一些统计报表中比较常用这个时间段,需 ...

  6. 4.总结近5周以来的github上的工作情况,以图表方式分析你小组的工作情况、存在的问题及解决的方案。(尤心心)

    4.总结近5周以来的github上的工作情况,以图表方式分析你小组的工作情况.存在的问题及解决的方案. (1)利用github本身的graphs可以清晰的看出小组成员在github上面的交互,可以直接 ...

  7. mysql统计天、周、月、季度、半年、年

    之前在网上搜索按时间统计,发现不是很全 ,接着别人的思路进行延伸下, mysql统计天.周.月.季度.半年.年 前期工作创建辅助表 CREATE TABLE num (i INT); ),(),(), ...

  8. 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)

    在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer ...

  9. Tomcat集群下获取memcached缓存对象数量,统计在线用户数据量

    项目需要统计在线用户数量,系统部署在集群环境下,使用会话粘贴的方式解决Session问题.要想得到真实在线用户数,必须是所有节点的总和. 这里考虑使用memcached存放用户登录数据,key为use ...

随机推荐

  1. 1.1Jupyter notbook 的使用

    目录 目录 (一)安装Jupyter notebook 1.在控制台输入: 2.注意: 3.安装的过程: (二)启动Jupyter notebook (三)文件管理 (四)基本概念与操作 1.什么是C ...

  2. Hibernate_添加联系人练习

    分析: 联系人与客户是多对一,一个客户(公司)有多个联系人,在多的这一方,即LinkMan, 1.LinkMan.java中除自身属性外,还需要 2.在hbm.xml文件中,加上 意思是建立一个外键用 ...

  3. win10 ubuntu 双系统启动顺序设置

    之前安装ubuntu的时候就遇到过这个问题, 当时解决了,设置成开始可以选择启动ubuntu系统还是win系统. 但是过了好久后又忘记了,最近win10开了一次安全模式启动后,一开机就是win10,u ...

  4. 2019阿里云开年Hi购季域名与商标分会场全攻略!

    2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3 ...

  5. 洛谷1081 (NOIp2012) 开车旅行——倍增预处理

    题目:https://www.luogu.org/problemnew/show/P1081 预处理从每个点开始a能走多少.b能走多少.可以像dp一样从后往前推. 但有X的限制.所以该数组可以变成倍增 ...

  6. Vim 中自定义注释快捷键

    写程序的时候写过的代码不忍心立马删掉,所以注释很多,所以找了下注释的快捷健. 打开 /etc/vim/vimrc文件,添加如下两行代码即可. /* 注释该行 */ map = I/* ^[A */j ...

  7. Mac 电脑如何卸载 node

    因为刚入手「 Mac 」很多淫技还不懂,在一次使用 npm install 的时候安装出错,提示为 npm 与 node 的版本有问题,所以就想着卸载重新装一个版本. 但是因为刚使用「 Mac 」所以 ...

  8. [Vue CLI 3] 配置 webpack-bundle-analyzer 插件

    首先还是简单介绍一下 webpack-bundle-analyzer 是做什么的: Visualize size of webpack output files with an interactive ...

  9. tyvjP1288 飘飘乎居士取能量块

    P1288 飘飘乎居士取能量块 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 9月21日,pink生日:9月22日,lina生日:9月23日,轮到到飘飘乎居 ...

  10. phpcms 允许英文目录有空格

    大家都用过phpcm添加栏目吧,在添加栏目里面,有个选项是 英文目录,这里目录可以用作伪静态功能.这么英文不能有空格等特殊字符.但是如果页面中需要引用包含空格的字符呢,例如,关于我们页面,我要显示英文 ...