5 분마다 실행되는 예약 된 작업이 실행중인 서버에서 일부 통계를 수집합니다.created_at를 쿼리 할 때 초를 무시합니다.
요청이 다시 돌아 오기를 기다리는 동안 약간의 지연이 있으므로 2 ~ 3 초 후에 항상 레코드가 저장됩니다. 작업이 2017-14-03 08:00:00
에서 실행되지만 레코드는 2017-14-03 08:00:03
에 저장됩니다.
레코드를 그래프에 표시하려고합니다. 그래프는보고자하는 기간으로 확장됩니다 (하드 코드 된 단추를 통해 새 데이터로 그래프를 새로 고침).
내가하려고하는 첫 번째 그래프는 지난 24 시간 동안의 그래프입니다. 지난 24 시간 동안 5 분마다 포인트를 가져 오는 대신, 시간당 하나씩 만 원합니다. 그 기반으로 지난 24 시간을 얻을 후 가까운 시간에 내림하고 기능을 내장했다 - 그것은 다음과 같습니다, 내가 whereIn()
등으로 모델을 조회하려고 시간을 반환 사용
public function last24Hours()
{
$times = [];
$time = Carbon::now()->minute(0)->second(0);
$i = 1;
while($i <= 24)
{
array_push($times, $time->toDateTimeString());
$time->subHour();
$i++;
}
return $times;
}
을 그래서 :
는$stats = ServerTracking::whereIn('created_at', $this->last24Hours())->get();
쿼리를 실행하지만 아무것도 돌아 오지 않는다 - created_at
시간이 나는 쿼리하고있는 무슨에서 떨어져 몇 초이기 때문에.
나는 약간의 장애물에 부딪쳤다.이 문제를 해결할 방법을 생각할 수 없다. 어떤 아이디어?
아름답게 작동합니다. – James