Как написать код в php чтобы он определял цвет светофора в конкретное время используя инпуты?
Любую задачу, если она сразу не решается в голове, надо решать на бумажке с ручкой
причем без алгоритмов, тупо перебором. 
рисуем шкалу времени, на ней сигналы светофора по очереди, и дальше берем даты внутри этой шкалы и тупо руками смотрим, какой сигнал.

И потому же пытаемся такой поиск автоматизировать. Исходя из разницы в секундах между заданной датой и началом работы
Причем шкала пригодится для того, чтобы проверять правильность своего алгоритма.

Дерзайте.
Если списать фразу "... с начала каждого часа..." на неточность изложения задачи, то, предполагаю, решение такое
$inputTime = strtotime('22.01.1970 00:02:55'); // green
$inputTime = strtotime('22.01.1970 00:03:15'); // yellow
$inputTime = strtotime('22.01.1970 00:03:30'); // red


$baseTime = strtotime('22.01.1970 00:00');
$cycleDuration = 180 + 20 + 120;
$x = ($inputTime - $baseTime) % $cycleDuration;
$color = null;

if ($x <= 180) {
    $color = 'green';
} elseif ($x <= 200) {
    $color = 'yellow';
} else {
    $color = 'red';
}

var_dump($color);