www.adminn.cn
站长正能量分享网!

php实现按天数、星期、月份查询的搜索框

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

本文实例为大家分享了php实现按天数、星期、月份查询的搜索框,搜索时候展示数据的统计图,主要展示图形的效果,供大家参考,具体内容如下

1.ajax.php

  1. <?php 
  2.  
  3.     $year = $_GET['y']; 
  4.  
  5.     if(!isset($_GET['m'])){ 
  6.  
  7.        $month=1; 
  8.  
  9.     }else
  10.  
  11.          $month = $_GET['m']; 
  12.  
  13.     } 
  14.  
  15.     $week_arr = getMonthWeekArr($year$month); 
  16.  
  17.     echo json_encode($week_arr); 
  18.  
  19.     die
  20.  
  21.        
  22.  
  23.        
  24.  
  25.        
  26.  
  27.   /** 
  28.  
  29.  * 获得系统某月的周数组,第一周不足的需要补足 
  30.  
  31.  *  
  32.  
  33.  * @param int $current_year 
  34.  
  35.  * @param int $current_month 
  36.  
  37.  * @return string[][] 
  38.  
  39.  */ 
  40.  
  41. function getMonthWeekArr($current_year$current_month){ 
  42.  
  43.      
  44.  
  45.   //该月第一天 
  46.  
  47.   $firstday = strtotime($current_year.'-'.$current_month.'-01'); 
  48.  
  49.   //该月的第一周有几天 
  50.  
  51.   $firstweekday = (7 – date('N',$firstday) +1); 
  52.  
  53.   //计算该月第一个周一的时间 
  54.  
  55.   $starttime = $firstday-3600*24*(7-$firstweekday); 
  56.  
  57.   //该月的最后一天 
  58.  
  59.   $lastday = strtotime($current_year.'-'.$current_month.'-01'." +1 month -1 day"); 
  60.  
  61.   //该月的最后一周有几天 
  62.  
  63.   $lastweekday = date('N',$lastday); 
  64.  
  65.   //该月的最后一个周末的时间 
  66.  
  67.   $endtime = $lastday-3600*24*($lastweekday%7); 
  68.  
  69.   $step = 3600*24*7;//步长值 
  70.  
  71.   $week_arr = array(); 
  72.  
  73.   for ($i=$starttime$i<$endtime$i$i+3600*24*7){ 
  74.  
  75.     $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)); 
  76.  
  77.   } 
  78. //phpfensi.com 
  79.   return $week_arr
  80.  

2.datehelper.php

  1.  //获得系统年份数组 
  2.  
  3. /** 
  4.  
  5.  *  
  6.  
  7.  * @return string[] 
  8.  
  9.  */ 
  10.  
  11. function getSystemYearArr(){ 
  12.  
  13.   $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'); 
  14.  
  15.   return $year_arr
  16.  
  17.  
  18.    
  19.  
  20. /** 
  21.  
  22.  * 获得系统月份数组 
  23.  
  24.  *  
  25.  
  26.  * @return array 
  27.  
  28.  */ 
  29.  
  30. function getSystemMonthArr(){ 
  31.  
  32.      
  33.  
  34.   $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'); 
  35.  
  36.   return $month_arr
  37.  
  38.  
  39.    
  40.  
  41. /** 
  42.  
  43.  * 获得系统周数组 
  44.  
  45.  *  
  46.  
  47.  * @return string[] 
  48.  
  49.  */ 
  50.  
  51. function getSystemWeekArr(){ 
  52.  
  53.   $week_arr = array('1'=>'周一','2'=>'周二','3'=>'周三','4'=>'周四','5'=>'周五','6'=>'周六','7'=>'周日'); 
  54.  
  55.   return $week_arr
  56.  
  57.  
  58.    
  59.  
  60. /** 
  61.  
  62.  * 获取某月的最后一天 
  63.  
  64.  *  
  65.  
  66.  * @param int $year 
  67.  
  68.  * @param int $month 
  69.  
  70.  * @return number 
  71.  
  72.  */ 
  73.  
  74. function getMonthLastDay($year$month){ 
  75.  
  76.      
  77.  
  78.   $t = mktime(0, 0, 0, $month + 1, 1, $year); 
  79.  
  80.   $t = $t – 60 * 60 * 24; 
  81.  
  82.   return $t
  83.  
  84.  
  85.    
  86.  
  87. /** 
  88.  
  89.  * 获得系统某月的周数组,第一周不足的需要补足 
  90.  
  91.  *  
  92.  
  93.  * @param int $current_year 
  94.  
  95.  * @param int $current_month 
  96.  
  97.  * @return string[][] 
  98.  
  99.  */ 
  100.  
  101. function getMonthWeekArr($current_year$current_month){ 
  102.  
  103.      
  104.  
  105.   //该月第一天 
  106.  
  107.   $firstday = strtotime($current_year.'-'.$current_month.'-01'); 
  108.  
  109.   //该月的第一周有几天 
  110.  
  111.   $firstweekday = (7 – date('N',$firstday) +1); 
  112.  
  113.   //计算该月第一个周一的时间 
  114.  
  115.   $starttime = $firstday-3600*24*(7-$firstweekday); 
  116.  
  117.   //该月的最后一天 
  118.  
  119.   $lastday = strtotime($current_year.'-'.$current_month.'-01'." +1 month -1 day"); 
  120.  
  121.   //该月的最后一周有几天 
  122.  
  123.   $lastweekday = date('N',$lastday); 
  124.  
  125.   //该月的最后一个周末的时间 
  126.  
  127.   $endtime = $lastday-3600*24*($lastweekday%7); 
  128.  
  129.   $step = 3600*24*7;//步长值 
  130.  
  131.   $week_arr = array(); 
  132.  
  133.   for ($i=$starttime$i<$endtime$i$i+3600*24*7){ 
  134.  
  135.     $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)); 
  136.  
  137.   } 
  138.  
  139.   return $week_arr
  140.  
  141.  
  142.    
  143.  
  144.    
  145.  
  146.    
  147.  
  148.  /** 
  149.  
  150.    * 处理搜索时间 
  151.  
  152.    */ 
  153.  
  154.  function dealwithSearchTime($search_arr=''){ 
  155.  
  156.     //初始化时间 
  157.  
  158.     //天 
  159.  
  160.     if(!isset($search_arr['search_time'])){ 
  161.  
  162.       $search_arr['search_time'] = date('Y-m-d', time()- 86400); 
  163.  
  164.     } 
  165.  
  166.    
  167.  
  168.     $search_arr['day']['search_time'] = strtotime($search_arr['search_time']);//搜索的时间 
  169.  
  170.     //周 
  171.  
  172.     if(!isset($search_arr['searchweek_year'])){ 
  173.  
  174.       $search_arr['searchweek_year'] = date('Y', time()); 
  175.  
  176.     } 
  177.  
  178.     if(!isset($search_arr['searchweek_month'])){ 
  179.  
  180.       $search_arr['searchweek_month'] = date('m', time()); 
  181.  
  182.     } 
  183.  
  184.     if(!isset($search_arr['searchweek_week'])){ 
  185.  
  186.       $search_arr['searchweek_week'] = implode('|', getWeek_SdateAndEdate(time())); 
  187.  
  188.     } 
  189.  
  190.    
  191.  
  192.    
  193.  
  194.     $weekcurrent_year = $search_arr['searchweek_year']; 
  195.  
  196.     $weekcurrent_month = $search_arr['searchweek_month']; 
  197.  
  198.     $weekcurrent_week = $search_arr['searchweek_week']; 
  199.  
  200.     $search_arr['week']['current_year'] = $weekcurrent_year
  201.  
  202.     $search_arr['week']['current_month'] = $weekcurrent_month
  203.  
  204.     $search_arr['week']['current_week'] = $weekcurrent_week
  205.  
  206.    
  207.  
  208.     //月 
  209.  
  210.     if(!isset($search_arr['searchmonth_year'])){ 
  211.  
  212.       $search_arr['searchmonth_year'] = date('Y', time()); 
  213.  
  214.     } 
  215.  
  216.     if(!isset($search_arr['searchmonth_month'])){ 
  217.  
  218.       $search_arr['searchmonth_month'] = date('m', time()); 
  219.  
  220.     } 
  221.  
  222.     $monthcurrent_year = $search_arr['searchmonth_year']; 
  223.  
  224.     $monthcurrent_month = $search_arr['searchmonth_month']; 
  225.  
  226.     $search_arr['month']['current_year'] = $monthcurrent_year
  227.  
  228.     $search_arr['month']['current_month'] = $monthcurrent_month
  229.  
  230.     return $search_arr
  231.  
  232.   } 
  233.  
  234.    
  235.  
  236.   /** 
  237.  
  238.    * 获取本周的开始时间和结束时间 
  239.  
  240.    *  
  241.  
  242.    * @param int $current_time 
  243.  
  244.    * @return string 
  245.  
  246.    */ 
  247.  
  248.   function getWeek_SdateAndEdate($current_time){ 
  249.  
  250.        
  251.  
  252.     $current_time = strtotime(date('Y-m-d',$current_time)); 
  253.  
  254.     $return_arr['sdate'] = date('Y-m-d'$current_time-86400*(date('N',$current_time) – 1)); 
  255.  
  256.     $return_arr['edate'] = date('Y-m-d'$current_time+86400*(7- date('N',$current_time))); 
  257.  
  258.        
  259.  
  260.     return $return_arr
  261.  
  262.   } 
  263.  
  264.   /** 
  265.  
  266.    * 查询每月的周数组 
  267.  
  268.    */ 
  269.  
  270.  function getweekofmonth(){ 
  271.  
  272.     $year = $_GET['y']; 
  273.  
  274.     $month = $_GET['m']; 
  275.  
  276.     $week_arr = getMonthWeekArr($year$month); 
  277.  
  278.     echo json_encode($week_arr); 
  279.  
  280.     die
  281.  
  282.   } 

3.statistics.php

  1. <?php 
  2.  
  3. /** 
  4.  
  5.  * 统计 
  6.  
  7.  * 
  8.  
  9.  * @abstract 
  10.  
  11.  * 
  12.  
  13.  * @copyright 格里西,2016 
  14.  
  15.  * 
  16.  
  17.  * @author liujun 
  18.  
  19.  * 
  20.  
  21.  * @version Id:statics v1.0 2016/2/5 
  22.  
  23.  */ 
  24.  
  25.    
  26.  
  27. /** 
  28.  
  29.  * 获得折线图统计图数据 
  30.  
  31.  *  
  32.  
  33.  * param $statarr 图表需要的设置项 
  34.  
  35.  * @return string 
  36.  
  37.  */ 
  38.  
  39. function getStatData_LineLabels($stat_arr){ 
  40.  
  41.      
  42.  
  43.   //图表区、图形区和通用图表配置选项 
  44.  
  45.   $stat_arr['chart']['type'] = 'line'
  46.  
  47.   //图表序列颜色数组 
  48.  
  49.   $stat_arr['colors']?'':$stat_arr['colors'] = array('#058DC7''#ED561B''#8bbc21''#0d233a'); 
  50.  
  51.   //去除版权信息 
  52.  
  53.   $stat_arr['credits']['enabled'] = false; 
  54.  
  55.   //导出功能选项 
  56.  
  57.   $stat_arr['exporting']['enabled'] = false; 
  58.  
  59.   //标题如果为字符串则使用默认样式 
  60.  
  61.   is_string($stat_arr['title'])?$stat_arr['title'] = array('text'=>"<b>{$stat_arr['title']}</b>",'x'=>-20):''
  62.  
  63.   //子标题如果为字符串则使用默认样式 
  64.  
  65.   is_string($stat_arr['subtitle'])?$stat_arr['subtitle'] = array('text'=>"<b>{$stat_arr['subtitle']}</b>",'x'=>-20):''
  66.  
  67.   //Y轴如果为字符串则使用默认样式 
  68.  
  69.   if(is_string($stat_arr['yAxis'])){ 
  70.  
  71.     $text = $stat_arr['yAxis']; 
  72.  
  73.     unset($stat_arr['yAxis']); 
  74.  
  75.     $stat_arr['yAxis']['title']['text'] = $text
  76.  
  77.   } 
  78.  
  79.   return json_encode($stat_arr); 
  80.  
  81.  
  82.    
  83.  
  84. /** 
  85.  
  86.  * 获得Column2D统计图数据 
  87.  
  88.  *  
  89.  
  90.  * @param array $stat_arr 
  91.  
  92.  * @return string 
  93.  
  94.  */ 
  95.  
  96. function getStatData_Column2D($stat_arr){ 
  97.  
  98.      
  99.  
  100.   //图表区、图形区和通用图表配置选项 
  101.  
  102.   $stat_arr['chart']['type'] = 'column'
  103.  
  104.   //去除版权信息 
  105.  
  106.   $stat_arr['credits']['enabled'] = false; 
  107.  
  108.   //导出功能选项 
  109.  
  110.   $stat_arr['exporting']['enabled'] = false; 
  111.  
  112.   //标题如果为字符串则使用默认样式 
  113.  
  114.   is_string($stat_arr['title'])?$stat_arr['title'] = array('text'=>"<b>{$stat_arr['title']}</b>",'x'=>-20):''
  115.  
  116.   //子标题如果为字符串则使用默认样式 
  117.  
  118.   is_string($stat_arr['subtitle'])?$stat_arr['subtitle'] = array('text'=>"<b>{$stat_arr['subtitle']}</b>",'x'=>-20):''
  119.  
  120.   //Y轴如果为字符串则使用默认样式 
  121.  
  122.   if(is_string($stat_arr['yAxis'])){ 
  123.  
  124.     $text = $stat_arr['yAxis']; 
  125.  
  126.     unset($stat_arr['yAxis']); 
  127.  
  128.     $stat_arr['yAxis']['title']['text'] = $text
  129.  
  130.   } 
  131.  
  132.   //柱形的颜色数组 
  133.  
  134.   $color = array('#7a96a4','#cba952','#667b16','#a26642','#349898','#c04f51','#5c315e','#445a2b','#adae50','#14638a','#b56367','#a399bb','#070dfa','#47ff07','#f809b7'); 
  135.  
  136.      
  137.  
  138.   foreach ($stat_arr['series'as $series_k=>$series_v){ 
  139.  
  140.     foreach ($series_v['data'as $data_k=>$data_v){ 
  141.  
  142.       $data_v['color'] = $color[$data_k]; 
  143.  
  144.       $series_v['data'][$data_k] = $data_v
  145.  
  146.     } 
  147.  
  148.     $stat_arr['series'][$series_k]['data'] = $series_v['data']; 
  149.  
  150.   } 
  151.  
  152.   //print_r($stat_arr); die; 
  153.  
  154.   return json_encode($stat_arr); 
  155.  
  156.  
  157.    
  158.  
  159. /** 
  160.  
  161.  * 获得Basicbar统计图数据 
  162.  
  163.  *  
  164.  
  165.  * @param array $stat_arr 
  166.  
  167.  * @return string 
  168.  
  169.  */ 
  170.  
  171. function getStatData_Basicbar($stat_arr){ 
  172.  
  173.      
  174.  
  175.   //图表区、图形区和通用图表配置选项 
  176.  
  177.   $stat_arr['chart']['type'] = 'bar'
  178.  
  179.   //去除版权信息 
  180.  
  181.   $stat_arr['credits']['enabled'] = false; 
  182.  
  183.   //导出功能选项 
  184.  
  185.   $stat_arr['exporting']['enabled'] = false; 
  186.  
  187.   //显示datalabel 
  188.  
  189.   $stat_arr['plotOptions']['bar']['dataLabels']['enabled'] = true; 
  190.  
  191.   //标题如果为字符串则使用默认样式 
  192.  
  193.   is_string($stat_arr['title'])?$stat_arr['title'] = array('text'=>"<b>{$stat_arr['title']}</b>",'x'=>-20):''
  194.  
  195.   //子标题如果为字符串则使用默认样式 
  196.  
  197.   is_string($stat_arr['subtitle'])?$stat_arr['subtitle'] = array('text'=>"<b>{$stat_arr['subtitle']}</b>",'x'=>-20):''
  198.  
  199.   //Y轴如果为字符串则使用默认样式 
  200.  
  201.   if(is_string($stat_arr['yAxis'])){ 
  202.  
  203.     $text = $stat_arr['yAxis']; 
  204.  
  205.     unset($stat_arr['yAxis']); 
  206.  
  207.     $stat_arr['yAxis']['title']['text'] = $text
  208.  
  209.   } 
  210.  
  211.   //柱形的颜色数组 
  212.  
  213.   $color = array('#7a96a4','#cba952','#667b16','#a26642','#349898','#c04f51','#5c315e','#445a2b','#adae50','#14638a','#b56367','#a399bb','#070dfa','#47ff07','#f809b7'); 
  214.  
  215.      
  216.  
  217.   foreach ($stat_arr['series'as $series_k=>$series_v){ 
  218.  
  219.     foreach ($series_v['data'as $data_k=>$data_v){ 
  220.  
  221.       if (!$data_v['color']){ 
  222.  
  223.         $data_v['color'] = $color[$data_k%15]; 
  224.  
  225.       } 
  226.  
  227.       $series_v['data'][$data_k] = $data_v
  228.  
  229.     } 
  230.  
  231.     $stat_arr['series'][$series_k]['data'] = $series_v['data']; 
  232.  
  233.   } 
  234.  
  235.   //print_r($stat_arr); die; 
  236.  
  237.   return json_encode($stat_arr); 
  238.  
  239.  
  240.    
  241.  
  242. /** 
  243.  
  244.  * 计算环比 
  245.  
  246.  *  
  247.  
  248.  * @param array $updata 
  249.  
  250.  * @param array $currentdata 
  251.  
  252.  * @return string 
  253.  
  254.  */ 
  255.  
  256. function getHb($updata$currentdata){ 
  257.  
  258.      
  259.  
  260.   if($updata != 0){ 
  261.  
  262.     $mtomrate = round(($currentdata – $updata)/$updata*100, 2).'%'
  263.  
  264.   } else { 
  265.  
  266.     $mtomrate = '-'
  267.  
  268.   } 
  269.  
  270.   return $mtomrate;  
  271.  
  272.  
  273.    
  274.  
  275. /** 
  276.  
  277.  * 计算同比 
  278.  
  279.  *  
  280.  
  281.  * @param array $updata 
  282.  
  283.  * @param array $currentdata 
  284.  
  285.  * @return string 
  286.  
  287.  */ 
  288.  
  289. function getTb($updata$currentdata){ 
  290.  
  291.      
  292.  
  293.   if($updata != 0){ 
  294.  
  295.     $ytoyrate = round(($currentdata – $updata)/$updata*100, 2).'%'
  296.  
  297.   } else { 
  298.  
  299.     $ytoyrate = '-'
  300.  
  301.   } 
  302.  
  303.   return $ytoyrate;  
  304.  
  305.  
  306.    
  307.  
  308. /** 
  309.  
  310.  * 地图统计图 
  311.  
  312.  *  
  313.  
  314.  * @param array $stat_arr 
  315.  
  316.  * @return string 
  317.  
  318.  */ 
  319.  
  320. function getStatData_Map($stat_arr){ 
  321.  
  322.      
  323.  
  324.   //$color_arr = array('#f63a3a','#ff5858','#ff9191','#ffc3c3','#ffd5d5'); 
  325.  
  326.   $color_arr = array('#fd0b07','#ff9191','#f7ba17','#fef406','#25aae2'); 
  327.  
  328.   $stat_arrnew = array(); 
  329.  
  330.   foreach ($stat_arr as $k=>$v){ 
  331.  
  332.     $stat_arrnew[] = array('cha'=>$v['cha'],'name'=>$v['name'],'des'=>$v['des'],'color'=>$color_arr[$v['level']]); 
  333.  
  334.   } 
  335.  
  336.   return json_encode($stat_arrnew); 
  337.  
  338.  
  339.    
  340.  
  341. /** 
  342.  
  343.  * 获得饼形图数据 
  344.  
  345.  *  
  346.  
  347.  * @param array $data 
  348.  
  349.  * @return string 
  350.  
  351.  */ 
  352.  
  353. function getStatData_Pie($data){ 
  354.  
  355.      
  356.  
  357.   $stat_arr['chart']['type'] = 'pie'
  358.  
  359.   $stat_arr['credits']['enabled'] = false; 
  360.  
  361.   $stat_arr['title']['text'] = $data['title']; 
  362.  
  363.   $stat_arr['tooltip']['pointFormat'] = '{series.name}: <b>{point.y}</b>'
  364.  
  365.   $stat_arr['plotOptions']['pie'] = array
  366.  
  367.     'allowPointSelect'=>true, 
  368.  
  369.     'cursor'=>'pointer'
  370.  
  371.     'dataLabels'=>array
  372.  
  373.       'enabled'=>$data['label_show'], 
  374.  
  375.       'color'=>'#000000'
  376.  
  377.       'connectorColor'=>'#000000'
  378.  
  379.       'format'=>'<b>{point.name}</b>: {point.percentage:.1f} %' 
  380.  
  381.     ) 
  382.  
  383.   ); 
  384.  
  385.   $stat_arr['series'][0]['name'] = $data['name']; 
  386.  
  387.   $stat_arr['series'][0]['data'] = array(); 
  388.  
  389.   foreach ($data['series'as $k=>$v){ 
  390.  
  391.     $stat_arr['series'][0]['data'][] = array($v['p_name'],$v['allnum']); 
  392. //phpfensi.com 
  393.   } 
  394.  
  395.   //exit(json_encode($stat_arr)); 
  396.  
  397.   return json_encode($stat_arr); 
  398.  

4.theline.php

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
  2.  
  3. <!–引入ECharts文件–> 
  4.  
  5. <title>Echarts</title> 
  6.  
  7. <script src="js/echarts.common.min.js"></script> 
  8.  
  9.   
  10.  
  11. <script src="js/jquery.js"></script> 
  12.  
  13. <?php include('php/datehelper.php');include('php/statistics.php');?> 
  14.  
  15. <?php  
  16.  
  17.    
  18.  
  19.       //获得系统年份 
  20.  
  21.       $year_arr = getSystemYearArr(); 
  22.  
  23.       //获得系统月份 
  24.  
  25.       $month_arr = getSystemMonthArr(); 
  26.  
  27.       //存储参数 
  28.  
  29.       $search_arr = $_REQUEST
  30.  
  31.       $search_arr =dealwithSearchTime($search_arr); 
  32.  
  33.       //获得本月的周时间段 
  34.  
  35.       $week_arr = getMonthWeekArr($search_arr['week']['current_year'],$search_arr['week']['current_month']); 
  36.  
  37.       //天数 
  38.  
  39.       if(!isset($_REQUEST['search_time'])){ 
  40.  
  41.         $_REQUEST['search_time'] = date('Y-m-d', time()-86400); 
  42.  
  43.       } 
  44.  
  45.       $search_time = $_REQUEST['search_time'];//搜索的时间 
  46.  
  47.         //周 
  48.  
  49.       if(!isset($_REQUEST['search_time_year'])){ 
  50.  
  51.         $_REQUEST['search_time_year'] = date('Y', time()); 
  52.  
  53.       } 
  54.  
  55.       if(!isset($_REQUEST['search_time_month'])){ 
  56.  
  57.         $_REQUEST['search_time_month'] = date('m', time()); 
  58.  
  59.       } 
  60.  
  61.       if(!isset($_REQUEST['search_time_week'])){ 
  62.  
  63.         $_REQUEST['search_time_week'] = implode('|', getWeek_SdateAndEdate(time())); 
  64.  
  65.       } 
  66.  
  67.          
  68.  
  69.       $current_year = $_REQUEST['search_time_year']; 
  70.  
  71.       $current_month = $_REQUEST['search_time_month']; 
  72.  
  73.       $current_week = $_REQUEST['search_time_week']; 
  74.  
  75.        
  76.  
  77. ?> 
  78.  
  79. <style> 
  80.  
  81. #search_type{float:left} 
  82.  
  83. #searchtype_day{float:left} 
  84.  
  85. #searchtype_week{float:left} 
  86.  
  87. #searchtype_month{float:left} 
  88.  
  89.    
  90.  
  91.    
  92.  
  93. </style> 
  94.  
  95.   
  96.  
  97.   <select name="search_type" id="search_type"
  98.  
  99.          <option value="day">按照天统计</option> 
  100.  
  101.          <option value="week">按照周统计</option> 
  102.  
  103.          <option value="month">按照月统计</option> 
  104.  
  105.     </select> 
  106.  
  107.     <p class="w140" id="searchtype_day"
  108.  
  109.       <p class="input-group date" id="datetimepicker1">   
  110.  
  111.         <input id="stime" class="form-control" type="text" value="<?php echo $search_time;?>" name="search_time"
  112.  
  113.         <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span>  
  114.  
  115.       </p>  
  116.  
  117.     </p>   
  118.  
  119.      <p id="searchtype_week" style="display:none;"
  120.  
  121.         <select name="search_time_year" id="searchweek_year"
  122.  
  123.           <?php foreach ($year_arr as $k=>$v){?> 
  124.  
  125.           <option value="<?php echo $k;?>" <?php="" echo="" $current_year="=" $k?'selected':'';?="">><?php echo $v; ?></option> 
  126.  
  127.           <?php } ?> 
  128.  
  129.         </select> 
  130.  
  131.         <select name="search_time_month" id="searchweek_mouth"
  132.  
  133.           <?php foreach ($month_arr as $k=>$v){?> 
  134.  
  135.           <option value="<?php echo $k;?>" <?php="" echo="" $current_month="=" $k?'selected':'';?="">><?php echo $v; ?></option> 
  136.  
  137.           <?php } ?> 
  138.  
  139.         </select> 
  140.  
  141.         <select name="search_time_week" id="searchweek_week"
  142.  
  143.           <?php foreach ($week_arr as $k=>$v){?> 
  144.  
  145.           <option value="<?php echo $v['key'];?>" <?php="" echo="" $current_week="=" $v['key']?'selected':'';?=""> ><?php echo $v['val']; ?></option> 
  146.  
  147.           <?php } ?> 
  148.  
  149.         </select> 
  150.  
  151.        </p>  
  152.  
  153.        
  154.  
  155.       <p id="searchtype_month" style="display:none;"
  156.  
  157.           <select name="search_time_year" class="querySelect"
  158.  
  159.           <?php foreach ($year_arr as $k=>$v){?> 
  160.  
  161.           <option value="<?php echo $k;?>" <?php="" echo="" $current_year="=" $k?'selected':'';?=""> ><?php echo $v; ?></option> 
  162.  
  163.           <?php } ?> 
  164.  
  165.         </select> 
  166.  
  167.         <select name="search_time_month" class="querySelect"
  168.  
  169.           <?php foreach ($month_arr as $k=>$v){?> 
  170.  
  171.           <option value="<?php echo $k;?>" <?php="" echo="" $current_month="=" $k?'selected':'';?="">><?php echo $v; ?></option> 
  172.  
  173.           <?php } ?> 
  174.  
  175.         </select> 
  176.  
  177.       </p>  
  178.  
  179.    <p id="line_chart" style="width:600px;height:400px;"></p> 
  180.  
  181.    <?php $thearray=array(11,11,15,13,12,13,10);?> 
  182.  
  183.    <script type="text/javascript"
  184.  
  185.     // 基于准备好的dom,初始化echarts实例 
  186.  
  187.    
  188.  
  189.     var mylineChart=echarts.init(document.getElementById('line_chart')); 
  190.  
  191.    
  192.  
  193.     option1 = { 
  194.  
  195.   title: { 
  196.  
  197.     text: '未来一周气温变化'
  198.  
  199.     subtext: '纯属虚构' 
  200.  
  201.   }, 
  202.  
  203.   tooltip: { 
  204.  
  205.     trigger: 'axis' 
  206.  
  207.   }, 
  208.  
  209.   legend: { 
  210.  
  211.     data:['最高气温','最低气温'
  212.  
  213.   }, 
  214.  
  215.   toolbox: { 
  216.  
  217.     show: true, 
  218.  
  219.     feature: { 
  220.  
  221.       dataZoom: {}, 
  222.  
  223.       // dataView: {readOnly: false}, 
  224.  
  225.       magicType: {type: ['line''bar']}, 
  226.  
  227.       restore: {}, 
  228.  
  229.       saveAsImage: {} 
  230.  
  231.     } 
  232.  
  233.   }, 
  234.  
  235.   xAxis: { 
  236.  
  237.     type: 'category'
  238.  
  239.     boundaryGap: false, 
  240.  
  241.     data: ['周一','周二','周三','周四','周五','周六','周日'
  242.  
  243.   }, 
  244.  
  245.   yAxis: { 
  246.  
  247.     type: 'value'
  248.  
  249.     axisLabel: { 
  250.  
  251.       formatter: '{value} °C' 
  252.  
  253.     } 
  254.  
  255.   }, 
  256.  
  257.   series: [ 
  258.  
  259.     { 
  260.  
  261.       name:'最高气温'
  262.  
  263.       type:'line'
  264.  
  265.       data:<?php echo(json_encode($thearray)); ?>, 
  266.  
  267.       markPoint: { 
  268.  
  269.         data: [ 
  270.  
  271.           {type: 'max', name: '最大值'}, 
  272.  
  273.           {type: 'min', name: '最小值'
  274.  
  275.         ] 
  276.  
  277.       }, 
  278.  
  279.       markLine: { 
  280.  
  281.         data: [ 
  282.  
  283.           {type: 'average', name: '平均值'
  284.  
  285.         ] 
  286.  
  287.       } 
  288.  
  289.     }, 
  290.  
  291.     { 
  292.  
  293.       name:'最低气温'
  294.  
  295.       type:'line'
  296.  
  297.       data:[1, 4, 2, 5, 3, 2, 0], 
  298.  
  299.       markPoint: { 
  300.  
  301.         data: [ 
  302.  
  303.           {name: '周最低', value: -2, xAxis: 1, yAxis: -1.5} 
  304.  
  305.         ] 
  306.  
  307.       }, 
  308.  
  309.       markLine: { 
  310.  
  311.         data: [ 
  312.  
  313.           {type: 'average', name: '平均值'
  314.  
  315.         ] 
  316.  
  317.       } 
  318.  
  319.     } 
  320.  
  321.   ] 
  322.  
  323. }; 
  324.  
  325.     // 使用刚指定的配置项和数据显示图表。 
  326.  
  327.     mylineChart.setOption(option1); 
  328.  
  329.   </script> 
  330.  
  331.   <script> 
  332.  
  333.   //展示搜索时间框 
  334.  
  335. function show_searchtime(){ 
  336.  
  337.   s_type = $("#search_type").val(); 
  338.  
  339.   $("[id^='searchtype_']").hide(); 
  340.  
  341.   $("#searchtype_"+s_type).show(); 
  342.  
  343.  
  344.   $(function(){ 
  345.  
  346.       
  347.  
  348.     show_searchtime(); 
  349.  
  350.   $("#search_type").change(function(){ 
  351.  
  352.     show_searchtime(); 
  353.  
  354.   }); 
  355.  
  356.       
  357.  
  358.   //更新周数组 
  359.  
  360.   $("[name='search_time_month']").change(function(){ 
  361.  
  362.      
  363.  
  364.     var year = $("[name='search_time_year']").val(); 
  365.  
  366.     var month = $("[name='search_time_month']").val(); 
  367.  
  368.    
  369.  
  370.     $("[name='search_time_week']").emptyempty(); 
  371.  
  372.     $.getJSON('php/ajax.php',{y:year,m:month},function(data){ 
  373.  
  374.       if(data != null){ 
  375.  
  376.         for(var i = 0; i < data.length; i++) { 
  377.  
  378.           $("[name='search_time_week']").append('<option value="'+data[i].key+'">'+data[i].val+'</option>'); 
  379.  
  380.         } 
  381.  
  382.       } 
  383.  
  384.     }); 
  385.  
  386.   }); 
  387.  
  388.   //更新年数组 
  389.  
  390.     $("[name='search_time_year']").change(function(){ 
  391.  
  392.     var year = $("[name='search_time_year']").val(); 
  393.  
  394.        
  395.  
  396.     $("[name='search_time_week']").emptyempty(); 
  397.  
  398.     $("#searchweek_mouth option:first").prop("selected"'selected');  
  399.  
  400.     $.getJSON('php/ajax.php',{y:year},function(data){ 
  401.  
  402.       if(data != null){ 
  403.  
  404.         for(var i = 0; i < data.length; i++) { 
  405.  
  406.           $("[name='search_time_week']").append('<option value="'+data[i].key+'">'+data[i].val+'</option>');          
  407.  
  408.         } 
  409.  
  410.       } 
  411.  
  412.     }); 
  413.  
  414.   }); 
  415.  
  416.   }); 
  417.  
  418.   </script> 

5.time_deal.php

  1. <?php  
  2.  
  3.    
  4.  
  5. //获取系统年份 
  6.  
  7. /** 
  8.  
  9.  *  
  10.  
  11.  * @return string[] 
  12.  
  13.  */ 
  14.  
  15. function getSystemYearArr(){ 
  16.  
  17.      
  18.  
  19.   $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'); 
  20.  
  21.   return $year_arr
  22.  
  23.  
  24.    
  25.  
  26. /** 
  27.  
  28.  * 获得系统月份数组 
  29.  
  30.  *  
  31.  
  32.  * @return array 
  33.  
  34.  */ 
  35.  
  36. function getSystemMonthArr(){ 
  37.  
  38.      
  39.  
  40.   $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'); 
  41.  
  42.   return $month_arr
  43.  
  44.  
  45.    
  46.  
  47.   /** 
  48.  
  49.    * 处理搜索时间 
  50.  
  51.    */ 
  52.  
  53.   public function dealwithSearchTime($search_arr){ 
  54.  
  55.     //初始化时间 
  56.  
  57.     //天 
  58.  
  59.     if(!$search_arr['search_time']){ 
  60.  
  61.       $search_arr['search_time'] = date('Y-m-d', time()- 86400); 
  62.  
  63.     } 
  64.  
  65.     $search_arr['day']['search_time'] = strtotime($search_arr['search_time']);//搜索的时间 
  66.  
  67.      
  68.  
  69.     //周 
  70.  
  71.     if(!$search_arr['searchweek_year']){ 
  72.  
  73.       $search_arr['searchweek_year'] = date('Y', time()); 
  74.  
  75.     } 
  76.  
  77.     if(!$search_arr['searchweek_month']){ 
  78.  
  79.       $search_arr['searchweek_month'] = date('m', time()); 
  80.  
  81.     } 
  82.  
  83.     if(!$search_arr['searchweek_week']){ 
  84.  
  85.       $search_arr['searchweek_week'] = implode('|', getWeek_SdateAndEdate(time())); 
  86.  
  87.     } 
  88.  
  89.     $weekcurrent_year = $search_arr['searchweek_year']; 
  90.  
  91.     $weekcurrent_month = $search_arr['searchweek_month']; 
  92.  
  93.     $weekcurrent_week = $search_arr['searchweek_week']; 
  94.  
  95.     $search_arr['week']['current_year'] = $weekcurrent_year
  96.  
  97.     $search_arr['week']['current_month'] = $weekcurrent_month
  98.  
  99.     $search_arr['week']['current_week'] = $weekcurrent_week
  100.  
  101.      
  102.  
  103.     //月 
  104.  
  105.     if(!$search_arr['searchmonth_year']){ 
  106.  
  107.       $search_arr['searchmonth_year'] = date('Y', time()); 
  108.  
  109.     } 
  110.  
  111.     if(!$search_arr['searchmonth_month']){ 
  112.  
  113.       $search_arr['searchmonth_month'] = date('m', time()); 
  114.  
  115.     } 
  116.  
  117.     $monthcurrent_year = $search_arr['searchmonth_year']; 
  118.  
  119.     $monthcurrent_month = $search_arr['searchmonth_month']; 
  120.  
  121.     $search_arr['month']['current_year'] = $monthcurrent_year
  122.  
  123.     $search_arr['month']['current_month'] = $monthcurrent_month
  124.  
  125.     return $search_arr
  126.  
  127.   } 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php实现按天数、星期、月份查询的搜索框》
文章链接:https://www.adminn.cn/news/7599.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏