code: public final function compareTo($obj)
      {
          if ($obj instanceof Time) {
              $c = $this->compareFields($obj);
              return ($c !== 0) ? $c : $this->getType() - $obj->getType();
          } else {
              return null;
          }
      }
docs: この時間と指定された時間を比較します.
  このメソッドは, 自身と引数の時間オブジェクトが共通で持っているフィールドについて比較を行います.
  比較の結果すべてのフィールドの値が等しかった場合,
  より多くの時間フィールドを持つほうが「後」となります.
  
  例: 2012-05-21 (Date) < 2012-05-21T00:00 (Datetime) < 2012-05-21T00:00:00 (Timestamp)
  
  @param  mixed $obj 比較対象のオブジェクト
  @return int        この時間のほうが過去の場合は負の値, 未来の場合は正の値, 等しい場合は 0.
  ただし, 引数が時間オブジェクトでない場合は NULL