Einen Countdown anzeigen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 64 von 68.
Aufgabe
EinfachSie erhalten drei Eingaben: einen JSON-String, der ein Array von Ereignissen darstellt, einen Datums-String im Format YYYY-MM-DD, der das heutige Datum darstellt, und einen Ereignisnamen, für den der Countdown angezeigt werden soll.
Die erste Eingabe ist ein JSON-String 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 ein Datums-String in diesem Format: 2024-04-01
Die dritte Eingabe ist ein Ereignisname in diesem Format: Team Meeting
Lesen Sie alle drei Eingaben ein und dekodieren Sie den JSON-String in ein Ereignis-Array. Finden Sie das Ereignis, das mit dem angegebenen Ereignisnamen übereinstimmt. Erstellen Sie DateTime-Objekte sowohl für das heutige Datum als auch für das Datum des Ereignisses.
Berechnen Sie die Differenz zwischen dem Ereignisdatum und dem heutigen Datum. Verwenden Sie die Methode diff() auf dem DateTime-Objekt für heute und übergeben Sie das DateTime-Objekt des Ereignisses als Parameter. Dies gibt ein DateInterval-Objekt zurück. Greifen Sie auf die Eigenschaft days dieses Objekts zu, um die Anzahl der Tage zwischen den beiden Daten zu erhalten.
Geben Sie den Countdown im folgenden Format aus:
Countdown to [event name]: [number of days] days
Wenn das Ereignis nicht im Array gefunden wird, geben Sie aus: Event not found
Eingabeformat:
- Erste Zeile: Ein JSON-String, der das Ereignis-Array mit den Schlüsseln
name,dateundlocationdarstellt - Zweite Zeile: Ein Datums-String im Format YYYY-MM-DD, der 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, falls 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