Einen Countdown anzeigen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 64 von 68.
Aufgabe
EinfachDu erhältst drei Eingaben: eine JSON-Zeichenfolge, die ein Array von Ereignissen darstellt, eine Datumszeichenfolge im Format YYYY-MM-DD, die das heutige Datum darstellt, und einen Ereignisnamen, für den der Countdown angezeigt werden soll.
Die erste Eingabe ist eine JSON-Zeichenfolge in diesem Format: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]
Die zweite Eingabe ist eine Datumszeichenfolge in diesem Format: 2024-04-01
Die dritte Eingabe ist ein Ereignisname in diesem Format: Team Meeting
Lies alle drei Eingaben ein und dekodiere die JSON-Zeichenfolge in ein Ereignis-Array. Finde das Ereignis, das mit dem angegebenen Ereignisnamen übereinstimmt. Erstelle DateTime-Objekte sowohl für das heutige Datum als auch für das Datum des Ereignisses.
Berechne die Differenz zwischen dem Datum des Ereignisses und dem heutigen Datum. Verwende die Methode diff() für das DateTime-Objekt des heutigen Datums und übergib dabei das DateTime-Objekt des Ereignisses als Parameter. Dies gibt ein DateInterval-Objekt zurück. Greife auf die Eigenschaft days dieses Objekts zu, um die Anzahl der Tage zwischen den beiden Daten zu erhalten.
Gib den Countdown im folgenden Format aus:
Countdown to [event name]: [number of days] days
Wenn das Ereignis nicht im Array gefunden wird, gib Folgendes aus: Event not found
Eingabeformat:
- Erste Zeile: Eine JSON-Zeichenfolge, die das Ereignis-Array mit den Schlüsseln
name,dateundlocationdarstellt - Zweite Zeile: Eine Datumszeichenfolge im Format YYYY-MM-DD, die das heutige Datum darstellt (Beispiel:
2024-04-01) - Dritte Zeile: Ein Ereignisname, für den der Countdown angezeigt werden soll (Beispiel:
Team Meeting)
Erwartete Ausgabe: Eine einzelne Zeile, die den Countdown im Format Countdown to [event name]: [number of days] days anzeigt, oder Event not found, wenn das Ereignis nicht existiert
Probier es selbst
<?php
// Eingaben lesen
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));
// JSON-String in ein Events-Array dekodieren
$events = (array)json_decode($jsonString, true);
// TODO: Schreiben Sie Ihren Code unten
// Finden Sie das Event, das mit dem angegebenen Eventnamen übereinstimmt
// Erstellen Sie DateTime-Objekte für das heutige Datum und das Datum des Events
// Berechnen Sie die Differenz mit der diff()-Methode
// Greifen Sie auf die days-Eigenschaft des DateInterval-Objekts zu
// Ergebnis ausgeben
echo $result;
?>Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung6Array-Funktionen höherer Ordnung
Transformieren mit 'array_map''array_map' mit benutzerdefinierten FunktionenFiltern mit 'array_filter''array_filter' mit benutzerdefinierten FunktionenReduzieren mit 'array_reduce'Durchlaufen mit 'array_walk'Zusammenfassung: Datenverarbeitung9Event-Planer
Event-DatenEin neues Event hinzufügenÜbe selbstständig: Online-PHP-Compiler