質問: h($hour) . ':' . h($minutes); ?> // 時:分 実働:= $jitsudo; ?> // 実働表示 ``` 流れとして while内に計算と表示があって、while抜けてから最後の計算って流れなんですが、 while内では無いようにしたりとかしたり、してみたのですが、、、 どうなっているのか、よくわからなくなってしまい、、、、 手が詰まりました。。。。 待機のことなどは、特にあれば良いななので、ここでは実働の表示だけで大丈夫です。 レベルが低く申し訳ありません。。。
回答: 条件が間違ってました。日が変わったとき&$dataが入っているとき実働時間を計算します。 ``` if ($year != $data['year'] || $month != $data['month'] || $day = $data['day']) { ↓ if ($day != @$data['day'] && $data) { ``` 実働時間を表示するときに ``` function sec_to_time($sec) { return floor($sec / 3600).":". sprintf('%02d',floor(($sec / 60) % 60)); } ``` のような関数を作って自分で時間を表示しましょう。date関数はUTCからなので、日本では9時間ずれます。(9時間多くなる) また、30分ごとにするところですが、5分単位で丸めているんですから、そこを変えればいいのでは? そのあたりは、ご自分で考えてみてください。 四捨五入は`round`ですが、切り捨ては`floor`です。