Во первых - вы сравниваете
строки, что уже хреново.
Во вторых - в правилах выставления времени
уже должны быть ограничения, например что время закрытия больше времени открытия, так же с обедом, и еще надо проверить что обед попадает между закрытием и открытием.
Ну и когда вы приведете все условия в нормальный вид можно думать о логике, которая по факту проще пареной репы... ну и $work_time по уму должно быть $work_start_time, то же самое с $dinner_time.
Если все еще не ясна логика:
$work_time = [
'work_start_time'=>'09:30',
'work_end_time'=>'18:20',
'dinner_start_time'=>'13:30',
'dinner_end_time'=>'14:00',
];
$answer = 'Closed';
$date = str_replace(':','',$work_time);
$now = date('Hi');
if( $date['work_start_time'] <= $now && $now <= $date['work_end_time'] ) $answer = 'Now we open';
if( $date['dinner_start_time'] <= $now && $now <= $date['dinner_end_time'] ) $answer = 'Now we on break';
echo $answer;