Menu
CoddyTech

显示倒计时

本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 64 课,共 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"}]

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

第三个输入是以下格式的事件名称:Team Meeting

读取这三个输入,并将 JSON 字符串解码为事件数组。找到与给定事件名称匹配的事件。分别为今天的日期和事件日期创建 DateTime 对象。

计算事件日期与今天日期之间的差值。在今天的 DateTime 对象上调用 diff() 方法,并将事件的 DateTime 对象作为参数传入。这会返回一个 DateInterval 对象。访问此对象的 days 属性,获取两个日期之间的天数。

按照以下格式输出倒计时:

Countdown to [event name]: [number of days] days

如果数组中没有找到该事件,则输出:Event not found

输入格式:

  • 第一行:表示事件数组的 JSON 字符串,包含 name、date 和 location 键
  • 第二行:采用 YYYY-MM-DD 格式且表示今天日期的日期字符串(例如:2024-04-01)
  • 第三行:要显示倒计时的事件名称(例如:Team Meeting)

预期输出:一行倒计时,格式为:Countdown to [event name]: [number of days] days;如果事件不存在,则输出 Event not found

亲手试试

<?php
// 读取输入
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));

// 将 JSON 字符串解码为 events 数组
$events = (array)json_decode($jsonString, true);

// TODO: 在下方编写代码
// 查找名称与给定事件名称匹配的事件
// 为今天的日期和事件日期创建 DateTime 对象
// 使用 diff() 方法计算日期差
// 访问 DateInterval 对象的 days 属性

// 输出结果
echo $result;
?>

逻辑与流程中的所有课

自己练习: PHP 在线编译器