Menu
CoddyTech

列出即将举行的活动

本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 61 课,共 68 课。

challenge icon

挑战

简单

你会收到两个输入:一个表示现有事件数组的 JSON 字符串,以及一个表示今天日期的日期字符串,格式为 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"}]

第二个输入是以下格式的日期字符串:2024-04-01

读取两个输入,并将 JSON 字符串解码为事件数组。创建两个 DateTime 对象:一个用于表示今天的日期(使用第二个输入),另一个用于在遍历事件时表示每个事件的日期。

筛选并显示即将发生的事件,也就是日期大于或等于今天日期的事件。对于每个即将发生的事件,按以下格式打印:

Upcoming: [name] on [date] at [location]

每个即将发生的事件单独打印一行,并按照它们在数组中出现的顺序排列。如果某个事件的日期早于今天的日期,就不要打印它。

输入格式:

  • 第一行:表示事件数组的 JSON 字符串,包含键 name、date 和 location
  • 第二行:表示今天日期的日期字符串,格式为 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 对象
// 循环遍历事件并比较日期
// 按要求的格式输出即将发生的事件

?>

逻辑与流程中的所有课

自己练习: PHP 在线编译器