Определяем принадлежность времени диапазону на PHP

Определяем принадлежность текущего времени диапазону и если не принадлежит, то получаем время начала диапазона для отправки СМС в разрешенный диапазон.

Время отправки можно задавать в формате GMT, например "2012-10-18 18:00:00 GMT", в UNIXSTAMP или диапазоном в формате 10:00-22:30. Время в этом формате задается по текущему времени сервера, в моем случае по Москве(МСК). Если время начала больше времени конца, то подразумевается что это следующие сутки, например: 16:30-05:22 - до 05:22 сегодня и с 16:30 сегодня до 05:22 завтра.

<?
if(preg_match('/^([0-9]{1,2}:[0-9]{1,2})-([0-9]{1,2}:[0-9]{1,2})$/',$datetime,$ar)){
    if($ar[1] == $ar[2]){
        $send_datetime='';
    }elseif(strtotime($ar[1]) < strtotime($ar[2])){  // нормальный формат 08:00-22:00
        if(strtotime('now')>strtotime($ar[2]) ){
            $send_datetime=strtotime($ar[1].' +1 day');
        }elseif( strtotime('now')<strtotime($ar[1]) ){
            $send_datetime=strtotime($ar[1]);
        }else{
            $send_datetime='';
        }
    }else/*if(strtotime($ar[1]) > strtotime($ar[2]))*/{ // через полночь 22:00-08:00
        if(strtotime('now')>strtotime($ar[1]) || strtotime('now')<strtotime($ar[2])){ // 23:00 | 06:00
            $send_datetime='';
        }else{
            $send_datetime=strtotime($ar[1]);
        }
    }
}else{
    $send_datetime=strtotime($datetime);
    if($send_datetime<=strtotime('+5 second')){
        $send_datetime='';
    }
}
if(empty($send_datetime)){
    echo "Отправляю сразу";
}else{
    echo "Отложенная отправка на ".date('d-m-Y H:i:s',$send_datetime);
}
?>

.