laravel 시간 날짜 에 따라 그룹 통계 방법 예 시 를 실현 합 니 다.

4688 단어 laravel패 킷통계
날짜 별로 그룹 을 나누다

//                 
$user = DB::table('users')->whereBetween('created_at',['2018-01-01','2018-01-07'])
 ->selectRaw('date(created_at) as date,count(*) as value')
 ->groupBy('date')->get();

#         
{
 "date": "2018-01-01", #  
 "value": 199  #  
{
 "date": "2018-01-02",
 "value": 298
},
{
 "date": "2018-01-03",
 "value": 1000
}
 
#                              ,               
#       
$stimestamp = strtotime($start_time);
$etimestamp = strtotime($end_time);
#          
$days = ($etimestamp - $stimestamp) / 86400;
#      
$date = array();
for($i = 0;$i < $days;$i++){
 $date[] = date('Y-m-d', $stimestamp + (86400 * $i));
}
#      
foreach ($date as $key => $val){
 $data[$key] = [
 'date' => $val,
 'value' => 0
 ];
 foreach ($user as $item => $value){
 if($val == $value['date']){
  $data[$key] = $value;
 }
 }
}
return $data;
월 별로 조 를 나누다

#                  
$user = DB::table('users')->whereBetween('created_at',['2018-01-01','2018-12-31'])
 ->selectRaw('DATE_FORMAT(created_at,"%Y-%m") as date,COUNT(*) as value')
 ->groupBy('date')->get();
#         
{
 "date": "2018-01", #  
 "value": 1497  #  
},
{
 "date": "2018-02",
 "value": 2354
},
{
 "date": "2018-03",
 "value": 4560
} 
#                               ,            ,       
$year = date('Y',time());
#     
$month = [
 0 => $year.'-01',
 1 => $year.'-02',
 2 => $year.'-03',
 3 => $year.'-04',
 4 => $year.'-05',
 5 => $year.'-06',
 6 => $year.'-07',
 7 => $year.'-08',
 8 => $year.'-09',
 9 => $year.'-10',
 10 => $year.'-11',
 11 => $year.'-12',
];
#      
foreach ($month as $key => $val){
 $data[$key] = [
 'date' => $val,
 'value' => 0
 ];
 foreach ($user as $item => $value){
 if($val == $value['date']){
  $data[$key] = $value;
 }
 }
}
return $data;
laravel 은 시간 대별 수량 통 계 를 실현 하고 직접 사용 하기에 편리 합 니 다.
프로젝트 에 도표 와 같은 정 보 를 사 용 했 기 때문에 많은 시간의 데이터 동 태 를 얻어 야 한다.처음에 나 는 모두 시간 을 환산 해서 계산 했다.나중에 수첩 에 더 간단 한 방법 이 있 는 것 을 보고 통용 되 는 시간 대 통계(오늘,어제,지난주,이번 주,지난달,이 달,작년,올해)를 정리 했다.

use Carbon\Carbon;
 
public function getNumber()
{
  $data = [];

  #    
  $data['customer_today'] = Customer::where('customer_type', 1)->where('created_at', Carbon::today())->count();
  #    
  $data['customer_yesterday'] = Customer::where('customer_type', 1)->where('created_at', Carbon::yesterday())->count();

  //     
  $this_week = [Carbon::now()->startOfWeek(), Carbon::now()->endOfWeek()];
  $data['customer_this_week'] = Customer::where('customer_type', 1)->whereBetween('created_at', $this_week)->count();

  //     
  $last_week = [Carbon::now()->startOfWeek()->subWeek(), Carbon::now()->endOfWeek()->subWeek()];
  $data['customer_last_week'] = Customer::where('customer_type', 1)->whereBetween('created_at', $last_week)->count();

  //     
  $data['customer_this_month'] = Customer::where('customer_type', 1)->whereMonth('created_at', Carbon::now()->month)->count();

  //     
  $data['customer_last_month'] = Customer::where('customer_type', 1)->whereMonth('created_at', Carbon::now()->subMonth()->month)->count();

  //     
  $data['customer_this_year'] = Customer::where('customer_type', 1)->whereYear('created_at', Carbon::now()->year)->count();

  
  return $data;
}
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기