本文实例为大家分享了php实现按天数、星期、月份查询的搜索框,搜索时候展示数据的统计图,主要展示图形的效果,供大家参考,具体内容如下
1.ajax.php
<?php $year = $_GET['y']; if(!isset($_GET['m'])){ $month=1; }else{ $month = $_GET['m']; } $week_arr = getMonthWeekArr($year, $month); echo json_encode($week_arr); die; /** * 获得系统某月的周数组,第一周不足的需要补足 * * @param int $current_year * @param int $current_month * @return string[][] */ function getMonthWeekArr($current_year, $current_month){ //该月第一天 $firstday = strtotime($current_year.'-'.$current_month.'-01'); //该月的第一周有几天 $firstweekday = (7 - date('N',$firstday) +1); //计算该月第一个周一的时间 $starttime = $firstday-3600*24*(7-$firstweekday); //该月的最后一天 $lastday = strtotime($current_year.'-'.$current_month.'-01'." +1 month -1 day"); //该月的最后一周有几天 $lastweekday = date('N',$lastday); //该月的最后一个周末的时间 $endtime = $lastday-3600*24*($lastweekday%7); $step = 3600*24*7;//步长值 $week_arr = array(); for ($i=$starttime; $i<$endtime; $i= $i+3600*24*7){ $week_arr[] = array('key'=>date('Y-m-d',$i).'|'.date('Y-m-d',$i+3600*24*6), 'val'=>date('Y-m-d',$i).'~'.date('Y-m-d',$i+3600*24*6)); } return $week_arr; }
2.datehelper.php
<?php //获得系统年份数组 /** * * @return string[] */ function getSystemYearArr(){ $year_arr = array('2010'=>'2010','2011'=>'2011','2012'=>'2012','2013'=>'2013','2014'=>'2014','2015'=>'2015','2016'=>'2016','2017'=>'2017','2018'=>'2018','2019'=>'2019','2020'=>'2020'); return $year_arr; } /** * 获得系统月份数组 * * @return array */ function getSystemMonthArr(){ $month_arr = array('1'=>'01','2'=>'02','3'=>'03','4'=>'04','5'=>'05','6'=>'06','7'=>'07','8'=>'08','9'=>'09','10'=>'10','11'=>'11','12'=>'12'); return $month_arr; } /** * 获得系统周数组 * * @return string[] */ function getSystemWeekArr(){ $week_arr = array('1'=>'周一','2'=>'周二','3'=>'周三','4'=>'周四','5'=>'周五','6'=>'周六','7'=>'周日'); return $week_arr; } /** * 获取某月的最后一天 * * @param int $year * @param int $month * @return number */ function getMonthLastDay($year, $month){ $t = mktime(0, 0, 0, $month + 1, 1, $year); $t = $t - 60 * 60 * 24; return $t; } /** * 获得系统某月的周数组,第一周不足的需要补足 * * @param int $current_year * @param int $current_month * @return string[][] */ function getMonthWeekArr($current_year, $current_month){ //该月第一天 $firstday = strtotime($current_year.'-'.$current_month.'-01'); //该月的第一周有几天 $firstweekday = (7 - date('N',$firstday) +1); //计算该月第一个周一的时间 $starttime = $firstday-3600*24*(7-$firstweekday); //该月的最后一天 $lastday = strtotime($current_year.'-'.$current_month.'-01'." +1 month -1 day"); //该月的最后一周有几天 $lastweekday = date('N',$lastday); //该月的最后一个周末的时间 $endtime = $lastday-3600*24*($lastweekday%7); $step = 3600*24*7;//步长值 $week_arr = array(); for ($i=$starttime; $i<$endtime; $i= $i+3600*24*7){ $week_arr[] = array('key'=>date('Y-m-d',$i).'|'.date('Y-m-d',$i+3600*24*6), 'val'=>date('Y-m-d',$i).'~'.date('Y-m-d',$i+3600*24*6)); } return $week_arr; } /** * 处理搜索时间 */ function dealwithSearchTime($search_arr=''){ //初始化时间 //天 if(!isset($search_arr['search_time'])){ $search_arr['search_time'] = date('Y-m-d', time()- 86400); } $search_arr['day']['search_time'] = strtotime($search_arr['search_time']);//搜索的时间 //周 if(!isset($search_arr['searchweek_year'])){ $search_arr['searchweek_year'] = date('Y', time()); } if(!isset($search_arr['searchweek_month'])){ $search_arr['searchweek_month'] = date('m', time()); } if(!isset($search_arr['searchweek_week'])){ $search_arr['searchweek_week'] = implode('|', getWeek_SdateAndEdate(time())); } $weekcurrent_year = $search_arr['searchweek_year']; $weekcurrent_month = $search_arr['searchweek_month']; $weekcurrent_week = $search_arr['searchweek_week']; $search_arr['week']['current_year'] = $weekcurrent_year; $search_arr['week']['current_month'] = $weekcurrent_month; $search_arr['week']['current_week'] = $weekcurrent_week; //月 if(!isset($search_arr['searchmonth_year'])){ $search_arr['searchmonth_year'] = date('Y', time()); } if(!isset($search_arr['searchmonth_month'])){ $search_arr['searchmonth_month'] = date('m', time()); } $monthcurrent_year = $search_arr['searchmonth_year']; $monthcurrent_month = $search_arr['searchmonth_month']; $search_arr['month']['current_year'] = $monthcurrent_year; $search_arr['month']['current_month'] = $monthcurrent_month; return $search_arr; } /** * 获取本周的开始时间和结束时间 * * @param int $current_time * @return string */ function getWeek_SdateAndEdate($current_time){ $current_time = strtotime(date('Y-m-d',$current_time)); $return_arr['sdate'] = date('Y-m-d', $current_time-86400*(date('N',$current_time) - 1)); $return_arr['edate'] = date('Y-m-d', $current_time+86400*(7- date('N',$current_time))); return $return_arr; } /** * 查询每月的周数组 */ function getweekofmonth(){ $year = $_GET['y']; $month = $_GET['m']; $week_arr = getMonthWeekArr($year, $month); echo json_encode($week_arr); die; }
3.statistics.php