0

配列をループして各値を次の値と比較する際に問題があります。現在、私の関数は機能しますが、2 つのセットの値のみを比較します。たとえば、「開始」値の場合:

午前1:05 午前1:10 午前1:30 午前1:35

5 分 (1:05 から 1:10 までの時間) と 5 分 (1:30 から 1:35 までの時間) の結果が得られます。

しかし、1:10 から 1:30 までの時間がありません。次のループでは、1:35 から次の値までの時間を無視して、次の 2 つの値の間の時間を取得します。関数は、データリストを使用する Silverstripe 用ですが、パターンは任意の配列と同じにする必要がありますか? 洞察をいただければ幸いです。

 function timeCount()
{
    $times = $this->Meetings()->sort('Start');
    $lastTime = null;

    foreach ($times as $time) {
        if ($lastTime == null) {
            $lastTime = $time;
            continue;
        }

        $time = strtotime($time->Start);
        $lastTime = strtotime($lastTime->Start);

        //For debugging
        $diff = round(abs($time - $lastTime) / 60, 2) . " minute | ";

        $lastTime = null;

        var_dump($diff);
    }
}
4

1 に答える 1