Menu
CoddyTech

DateTime 객체 수정하기

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨. 68개 중 50번째.

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 컴파일러