/** * この時間と指定された時間を比較します. * * この型の時間フィールドと引数の型の時間フィールドのうち, * 共通しているフィールド同士を比較します. * * 引数がこのクラスを継承したオブジェクトではない場合, * 引数のオブジェクトに対して get("year"), get("month"), get("date"), get("hour"), get("minute") * を呼び出した結果を比較対象のフィールドとします. * * @param Time 比較対象の時間 * @return int この時間のほうが過去の場合は負の値, 未来の場合は正の値, それ以外は 0 * @ignore */ protected function compareFields(Time $time) { $c = parent::compareFields($time); if ($c !== 0) { return $c; } $className = __CLASS__; if ($time instanceof $className) { if ($this->hour !== $time->hour) { return $this->hour - $time->hour; } if ($this->minute !== $time->minute) { return $this->minute - $time->minute; } return 0; } else { $h = $time->get("hour"); $m = $time->get("minute"); if ($this->hour !== $h) { return isset($h) ? $this->hour - $h : 0; } if ($this->minute !== $m) { return isset($m) ? $this->minute - $m : 0; } return 0; } }