私は、実行しているサーバーでいくつかの統計情報を収集する5分ごとに実行されるスケジュールされたタスクを持っています。created_atを照会するときに秒を無視する
リクエストが戻ってくるのを待っている間にわずかな遅延があり、2〜3秒後には常にレコードが保存されます。つまり、タスクは2017-14-03 08:00:00
で実行されますが、レコードは2017-14-03 08:00:03
に保存されます。
グラフを表示するためにレコードを引き出しようとしています。グラフは、(グラフを新しいデータでリフレッシュするハードコードされたボタンを使用して)表示する期間に合わせてスケーリングされます。
私がやろうとしている最初のグラフは、過去24時間のグラフです。最後の24時間に5分ごとにポイントを戻すのではなく、1時間に1つしか必要ありません。私はオフに基づいて、最後の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