显示倒计时
本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 64 课,共 68 课。
挑战
简单你会收到三个输入:一个表示事件数组的 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 在线编译器