1 // 获取指定日期所在月的开始日期与结束日期
2 function getMonth($date){
3 $ret=array();
4 $timestamp=strtotime($date);
5 $mdays=date('t',$timestamp);
6 $ret['sdate']=date('Y-m-1 00:00:00',$timestamp);
7 $ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp);
8 return $ret;
9 }
10
11 // 获取指定日期所在星期的开始时间与结束时间
12 function getWeek($date){
13 $ret=array();
14 $timestamp=strtotime($date);
15 $w=strftime('%u',$timestamp);
16 $ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);
17 $ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);
18 return $ret;
19 }
20
21 //周排行榜
22 public function weekRanking(){
23 $ret=array();
24 //本周开始和结束日期数据
25 $ret=$this->getWeek(date('Y-m-d'));
26 //以下进行自己的逻辑操作
27 $newUploadWeek = (new BooksModel)->timeSearch($ret['sdate'],$ret['edate'],"*");
28 //统计相关数据
29 $uplist=array();
30 $num = array();
31 foreach ($newUploadWeek as $key => $up) {
32 if( in_array($up['uid'],$uplist) ){
33 $num[$up['uid']]=$num[$up['uid']]+1;
34 }else{
35 $uplist[] = $up['uid'];
36 $num[$up['uid']]= 1;
37 }
38 }
39 //根据数量倒序排行(从大到小)
40 arsort($num);
41 $ranking = $num;
42 //取排行榜前十名
43 $ranking = array_slice($num,0,10,true);//true键值保留,false键值重置print_r($rankName);
44 }
45
46 //上传月排行榜
47 public function uploadMouthRanking(){
48 $ret=array();
49 //本月开始与结束日期
50 $mouth=$this->getMonth(date('Y-m-d'));
51 /*
52 进行逻辑操作
53 */
54 $ranking="月排行榜";
55 print_r($ranking);
56 }
57
58 //获取其他一些时间周期
59 function getCycleTime($cycleTime){
60 $ret=array();
61 switch($cycleTime){
62 case yesterday:
63 // 昨天
64 $ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day'));
65 $ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day'));
66 break;
67 case thisWeek:
68 //本星期
69 $ret=getWeekRange(date('Y-m-d'));
70 break;
71 case LastWeek:
72 //上一个星期
73 $strDate=date('Y-m-d',strtotime('-1 week'));
74 $ret=getWeekRange($strDate);
75 break;
76 case theWeekBeforeLast:
77 //上上星期
78 $strDate=date('Y-m-d',strtotime('-2 week'));
79 $ret=getWeekRange($strDate);
80 break;
81 case thisMouth:
82 //本月
83 $ret=getMonthRange(date('Y-m-d'));
84 break;
85 case lastMouth:
86 //上月
87 $strDate=date('Y-m-d',strtotime('-1 month'));
88 $ret=getMonthRange($strDate);
89 break;
90 }
91 return $ret;
92 }