<?php

$times = ['12:05', '14:05', '16:05', '18:05', '20:05'];
$now = new \DateTime();
$filteredTimes = array_filter($times, function ($time) use ($now) {
    $diff = (new \DateTime($time))->diff($now);
    return $diff->invert && $diff->h * 60 + $diff->i >= 30;
});
echo sprintf("Now: %s\n", $now->format('H:i'));
var_dump($filteredTimes);

$filteredTimes = array_filter($times, function ($time) use ($now) {
    $diff = (new \DateTime($time))->diff($now);
    var_dump((int)$diff->format('%R%i%'));
    return (int)$diff->format('%R%i%') > 30;
});
var_dump($filteredTimes);