Menu
CoddyTech

修改 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' 这样的复杂表达式来执行复杂的日期运算,同时让代码保持清晰且易于维护。

challenge icon

挑战

简单

你会收到两个输入:一个格式为 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;
?>
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: PHP 在线编译器