ilch Forum » Allgemein » HTML, PHP, SQL,... » Anzeige Ergebnis einschränken PHP date

Geschlossen
  1. #1
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    391
    Beitragswertungen
    16 Beitragspunkte
    
    $battle_count = count($clan_api_battleinfo);
    //var_dump($battle_count);die;
    
    echo "<table border=\"1\">";
    echo "<tr><th>Zeit</th><th width=\"5px\">&nbsp;</th><th>Gefechtstyp</th><th width=\"5px\">&nbsp;</th><th>Angriffstyp</th><th width=\"5px\">&nbsp;</th><th>Gegner</th><th width=\"5px\">&nbsp;</th><th>Clantag</th><th width=\"5px\">&nbsp;</th><th>Provinz</th><th width=\"5px\">&nbsp;</th><th>Karte</th></tr>";
    echo "<tr><td colspan=\"13\">&nbsp;</td></tr>";
    
        
    
    for ($i = 0; $i < $battle_count; $i++){
    
        
            
        
        $time = date("d.m.Y - H:i",$clan_api_battleinfo[$i]["time"]);
    
    // mehr abfragen hier die nur zusammen gesetzt für die anzeige der gefechte wichtig sind.... 
    // wichtig wäre nur der Punkt time, wo alle Gefechte für den tag drin sind... die eingekürzt werden müssen in der 
    // Anzeige unten der Tabelle.... Sprich Nur die Tabelle füllen für den Zeitraum $time >= $now &&  $time <= $now 
    // +2 stunden
        
        
        
    //--------------------------------------------------------------    
        echo "<tr>";
        echo "<td>".$time."</td><td width=\"5px\"></td><td>".$attack_type."</td><td width=\"5px\"></td><td>".$battle_type."</td><td width=\"5px\"></td><td>".$competitor_name."</td><td width=\"5px\"></td><td>".$competitor_tag."</td><td width=\"5px\"></td><td>".$province_name."</td><td width=\"5px\"></td><td>".$arena_name."</td>";
        echo "</tr>";
    	echo "<tr><td colspan=\"13\">&nbsp;</td></tr>";
    // -------------------------------------------------------------
    }
    	//var_dump($member_counts);die;
    	echo "</table>";
    	
    } catch( Exception $e) {
    	
    	//exit('Error: '.$e->getMessage());
    	echo "<table border=\"1\">";
    	echo "<tr><th>Zeit</th><th width=\"5px\">&nbsp;</th><th>Gefechtstyp</th><th width=\"5px\">&nbsp;</th><th>Angriffstyp</th><th width=\"5px\">&nbsp;</th><th>Gegner</th><th width=\"5px\">&nbsp;</th><th>Clantag</th><th width=\"5px\">&nbsp;</th><th>Provinz</th><th width=\"5px\">&nbsp;</th><th>Karte</th></tr>";
    	echo "<tr><td colspan=\"13\">&nbsp;</td></tr>";
    	echo "</table>";
    }



    Bei dem script werden alle gefechte aus der wot api angezeigt. Nun möchte ich aber die Anzeige einschränken . SO das alles zwischen now und + 2 stunden nur angezeigt wird.... sprich alles vergangene soll ausgeblendet werden. da im moment das so nicht seitens der wot /wg api gemacht wird...


    verwendete ilch Version: 2.1.x

    betroffene Homepage: locahost
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.365
    Beitragswertungen
    203 Beitragspunkte
    Bei jedem Battle ist aber eine Zeit hinterlegt?
    while(!asleep()) sheep++;
    www.movely.biz
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.365
    Beitragswertungen
    203 Beitragspunkte
    Also da du noch nicht geantwortet hast denke ich mal ja und das hier ist ungetesteter Code aber so in etwa könnte es Funktionieren :

    $now = new DateTime();
    $end = new DateTime(strtotime($now)+7.200);
    if ($now >= $now && $now <= $end){
        echo 'do something';
    }


    vars müsstest du halt mit dem Datedaten der api abändern


    Zuletzt modifiziert von Nex4T am 16.01.2021 - 17:55:37
    while(!asleep()) sheep++;
    www.movely.biz
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    391
    Beitragswertungen
    16 Beitragspunkte
    ZitatZitat geschrieben von Nex4T
    Also da du noch nicht geantwortet hast denke ich mal ja und das hier ist ungetesteter Code aber so in etwa könnte es Funktionieren :

    $now = new DateTime();
    $end = new DateTime(strtotime($now)+7.200);
    if ($now >= $now && $now <= $end){
        echo 'do something';
    }


    vars müsstest du halt mit dem Datedaten der api abändern


    Zuletzt modifiziert von Nex4T am 16.01.2021 - 17:55:37



    Danke. ja die zeit ist in jedem battle was aus der api kommt hinterlegt im array. IUch werde heute mal tests durchlaufen dank dir.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    MonkeyOnKeyboard Moderator
    Registriert seit
    10.02.2014
    Beiträge
    391
    Beitragswertungen
    16 Beitragspunkte
    ich habs jetzt so gelöst.

    $date = new DateTime();
    $date->sub(new DateInterval('PT15M'));
    $nowj = $date->format('d.m.Y - H:i');
    $now = new DateTime();
    $hours = 2;
    $now->add(new DateInterval("PT{$hours}H"));
    $new_time = $now->format('d.m.Y - H:i');
    
    if ($time >= $nowj && $time <= $new_time){
    
    //do this
    
    }


    Danke dir für deine Hilfe


    Zuletzt modifiziert von MonkeyOnKeyboard am 17.01.2021 - 05:38:55
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.365
    Beitragswertungen
    203 Beitragspunkte
    Top zwinker
    while(!asleep()) sheep++;
    www.movely.biz
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten