Как выбрать строки через php из xml по времени

К примеру зная время сейчас вывести строки до следующего дня из атрибутов [start] или [stop], но следующий день не выводить

<programme start="20211121050500 +0300" stop="20211121060000 +0300" channel="1">
</programme>
<programme start="20211121080000 +0300" stop="20211121083500 +0300" channel="2">
</programme>
<programme start="20211121083500 +0300" stop="20211121092500 +0300" channel="2">
</programme>

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

$timezone = 'Europe/Moscow';
date_default_timezone_set ($timezone); 

  foreach($xml->children() as $channel) {        
   // echo $channel->{'display-name'} . " --- ".$channel['id']. "<br>";     
 
if ($channel->{'display-name'} == $tvcc) {
    echo $channel->{'display-name'};
    foreach($xml->children() as $programme) {   

        $tstart = date("d-m-Y H:i:s", strtotime($programme['start']));
        $tstop = date("d-m-Y H:i:s", strtotime($programme['stop']));
        $timestart = date("H:i", strtotime($programme['start']));
        $timestamp = date('d-m-Y H:i:s');
        
        if ($programme['channel'] == '2') {

    if (abs(strtotime($tstop)-time()) <= 30000) { 

        if ($tstop <= $timestamp) {         
            echo "<div style='display:none'>";
            echo  $tstart." - ".$tstop;
            echo  $programme->{'title'};
            echo  $programme->{'desc'};
            echo  $programme->{'category'};
        } else {
            echo "<ul><li>";

          $timestart = date("H:i", strtotime($programme['start']));
            
            echo  "<time>".$timestart."</time>";
            echo  "<div><span>".$programme->{'title'}."</span>&nbsp;</div>";
            echo  "<div>".$programme->{'desc'}."</div>";

Ответы (0 шт):