Quy tắc chồng chéo thời gian rất đơn giản (xem tại đây để có giải thích bằng hình ảnh hoàn chỉnh):
start1 < end2 AND end1 > start2
Vì vậy, truy vấn của bạn có thể là:
$classRoomCount = ClassRoom::where
(
function( $query ) use( $startTime, $endTime )
{
$query->where( 'start', '<', $endTime )
->where( 'end', '>', $startTime);
}
)->count();