修改 DateTime 对象
本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 50 课,共 68 课。
有了 DateTime 对象后,你通常需要对它进行更改,让它表示另一个时间点。modify() 方法允许你使用自然语言表达式,为 DateTime 对象增加或减去时间,让日期计算直观易读。
modify() 方法接受与 strtotime() 兼容的相同类型的字符串,例如 '+1 day'、'-2 weeks' 或 'next Friday'。与每次都创建一个新对象不同,这个方法会直接修改现有的 DateTime 对象,这样可以高效地进行连续的日期操作。
<?php
$date = new DateTime();
echo $date->format('Y-m-d'); // 今天的日期
$date->modify('+1 week');
echo $date->format('Y-m-d'); // 一周后的日期
$date->modify('-3 days');
echo $date->format('Y-m-d'); // 4 天后的日期
?>这种方法让你在日期计算方面拥有很大的灵活性。你可以连续进行多项修改,也可以使用像 '+2 months -1 day' 这样的复杂表达式来执行复杂的日期运算,同时让代码保持清晰且易于维护。
挑战
简单你会收到两个输入:一个格式为 Y-m-d H:i:s 的日期字符串,以及一个修改字符串。第一个输入是具体的日期和时间(例如:2024-03-15 14:30:25),第二个输入是修改表达式,例如 +1 week、-3 days 或 +2 months。
读取这两个输入,使用日期字符串创建一个 DateTime 对象,使用 modify() 方法将修改表达式应用于该 DateTime 对象,然后按 Y-m-d H:i:s 格式输出修改后的日期。
输入格式:
- 第一行:格式为
Y-m-d H:i:s的日期字符串(例如:2024-03-15 14:30:25) - 第二行:修改字符串(例如:
+1 week、-3 days或+2 months)
预期输出:按 Y-m-d H:i:s 格式表示的修改后日期
亲手试试
<?php
// 读取日期字符串
$dateString = trim(fgets(STDIN));
// 读取修改字符串
$modificationString = trim(fgets(STDIN));
// TODO:在下方编写你的代码
// 创建 DateTime 对象,应用修改并格式化结果
// 输出修改后的日期
echo $modifiedDate;
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: PHP 在线编译器