Menu
Coddy logo textTech

Einen Countdown anzeigen

Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 64 von 68.

challenge icon

Aufgabe

Einfach

Du 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, date und location darstellt
  • 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

Übe selbstständig: Online-PHP-Compiler