配列をループして各値を次の値と比較する際に問題があります。現在、私の関数は機能しますが、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);
}
}