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

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