PHPで二つの時間帯が重複しないかチェックする

数カ月前にをPHPで予約システム制作する機会があったのですが、
予約枠どうしが重複しないかチェックしなければならない何度か場面がありました。

よくあるホテルの部屋の予約システムや、座席の予約、病院の予約などのあれです。

例えば新規で新たに予約する際など、予約時間帯が既存の予約枠と衝突しないかをチェックする必要がありました。
でも二つの時間がかぶるかどうかを判定するのってどうやるんだと思って結構悩みました…。

以前はもっと長い比較式で判定していたのですが、
最近シンプルな比較式で判定できることがわかりました/(^o^)\

引数はそれぞれUNIXタイムスタンプ(エポックタイムスタンプ)の整数を想定しています。

/**
 * 2つの時間帯が重複しているかをチェックする
 *
 * @param int $startTime1 一つ目の時間範囲の開始時間
 * @param int $endTime1 一つ目の時間範囲の終了時間
 * @param int $startTime2 二つ目の時間範囲の開始時間
 * @param int $endTime2 二つ目の時間範囲の終了時間
 * @return bool 重複している場合はtrueを返す
 */
function isTimeDuplication($startTime1, $endTime1, $startTime2, $endTime2) {
    return ($startTime1 < $endTime2 && $startTime2 < $endTime1);
}

$startTime1 = strtotime('2011/11/25 10:00:00');
$endTime1 = strtotime('2011/11/25 11:00:00');
$startTime2 = strtotime('2011/11/25 10:30:00');
$endTime2 = strtotime('2011/11/25 11:30:00');
$isDuplicate = isTimeDuplication($startTime1, $endTime1, $startTime2, $endTime2); //重複しているので真が返る

余談ですが、PHPが組み込み関数で標準的に扱っているUNIXタイムスタンプは2038年問題を抱えています。
知ってる人は知っている、な問題です。

現時点でも対策はいくつかあります。
後で記事にしたいと思います。

間違いなどあればコメントください。