今後のイベント一覧
CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 61/68。
チャレンジ
簡単2つの入力を受け取ります。1つは既存のイベント配列を表すJSON文字列、もう1つは今日の付を表すYYYY-MM-DD形式の日付文字列です。
最初の入力は、次の形式のJSON文字列です:[{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]
2番目の入力は、次の形式の日付文字列です:2024-04-01
両方の入力を読み込み、JSON文字列をイベント配列にデコードしてください。2つの DateTime オブジェクトを作成します。1つは今日の付(2番目の入力を使用)用、もう1つはイベントをループ処理する際の各イベントの日付用です。
今後のイベント、つまり日付が今日以降(今日を含む)のイベントのみをフィルタリングして表示してください。各今後のイベントについて、次の形式で出力してください:
Upcoming: [name] on [date] at [location]
各今後のイベントを、配列に表示されている順序で、個別の行に出力してください。イベントの日付が今日より前の場合は、出力しないでください。
入力形式:
- 1行目:
name、date、locationというキーを持つイベント配列を表すJSON文字列 - 2行目:今日の日付を表すYYYY-MM-DD形式の日付文字列(例:
2024-04-01)
期待される出力: 各今後のイベントを、次の形式で個別の行に出力します:Upcoming: [name] on [date] at [location]
自分で試してみよう
<?php
// イベントのJSON文字列を読み込む
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);
// 本日の日付を読み込む
$todayDate = trim(fgets(STDIN));
// TODO: 以下にコードを記述してください
// 本日の日付のDateTimeオブジェクトを作成する
// イベントをループして日付を比較する
// 必要な形式で今後のイベントを出力する
?>