//今日日期
$TstartTime = strtotime(date("Y-m-d") . " 00:00:00");
$TendTime = strtotime(date("Y-m-d") . " 23:59:59");
//本月日期
$MstartTime = strtotime(date("Y-m-01") . " 00:00:00");
$MendTime = strtotime(date("Y-m-t") . " 23:59:59");
//上月日期
$LMstartTime = strtotime(date("Y-m-01", strtotime("-1 month")) . " 00:00:00");
$LMendTime = strtotime(date("Y-m-t", strtotime("-1 month")) . " 23:59:59");
开始时间和结束时间的搜索,还有日周月年的搜索,总结:
//如果开始时间和结束时间不为空,查找时间为一段时间之内的时间
if(!empty($param['starttime']) && !empty($param['endtime'])){
$arr = ['between',[$param['starttime'],$param['endtime']]];
$where['date']= $arr;
}else{
//搜索条件中的日、周、月、年
switch ($type){
case 'day' :
$timewhere = 'to_days(date)=to_days(now())';
$costflowgroup = 'hour(date)';
break;
case 'week' :
$timewhere = 'week(date)=week(now())';
$costflowgroup = 'day(date)';
break;
case 'month' :
$timewhere = 'month(date)=month(now())';
$costflowgroup = 'day(date)';
break;
case 'year' :
$timewhere = 'year(date)=year(now())';
$costflowgroup = 'month(date)';
break;
default :
$timewhere = 'to_days(date)=to_days(now())';
$costflowgroup = 'hour(date)';
break;
}
}
tp5获取多少天内,并以时间作为键值
$data['event'] = Db::table('snake_cn_active')
->where("DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(add_time)")
->group('day(add_time)')
->column('count(*)','day(add_time)');
下面为具体的例子:获取30天内的各种统计数据
//获取30天内的数据
public function getCharData(){
//1.浏览量数据
$dvisits = Db::table('snake_visit')
->where("DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(time)")
->order('time asc')
->group('day(time)')
->column('count(*)','DATE_FORMAT( time, "%m-%d" )');
//2.博文量
$dblog = Db::table('snake_cn_articles')
->where("DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(add_time)")
->group('day(add_time)')
->column('count(*)','DATE_FORMAT( add_time, "%m-%d" )');
//3.活动量
$devent = Db::table('snake_cn_active')
->where("DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(add_time)")
->group('day(add_time)')
->column('count(*)','DATE_FORMAT( add_time, "%m-%d" )');
//4.会员量
$duser = Db::table('snake_user')
->where("DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(add_time)")
->group('day(add_time)')
->column('count(*)','DATE_FORMAT( add_time, "%m-%d" )');
//获取日期 X轴数据
$data['xdata'] = array_keys($dvisits);
foreach ($data['xdata'] as $_v){
$visits[] = empty($dvisits[$_v]) ? 0 : $dvisits[$_v];
$blog[] = empty($dblog[$_v]) ? 0 : $dblog[$_v];
$event[] = empty($devent[$_v]) ? 0 : $devent[$_v];
$user[] = empty($duser[$_v]) ? 0 : $duser[$_v];
}
$data['visits'] = $visits;
$data['blog'] = $blog;
$data['event'] = $event;
$data['user'] = $user;
return $data;
// $this -> success('成功!','',$data);
}
PHP设置MySQL超时时间:
设置超时,两种方法:
第一种:
在服务器上设置也可以,在当前文件写代码也可以
服务器上找到php安装目录下的php.ini
找到max_execution_time这句,将值改为你想要的时间,或者该为0表示无时间限制
第二种:如果在当前文件写代码
那就在网页最顶端写这条php代码
set_time_limit (0);
括号内的参数是数字,写上你想要的时间,比如100就是100秒
0表示无时间限制