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'와 같은 복잡한 표현식을 사용해 정교한 날짜 연산을 수행하면서 코드를 명확하고 유지 관리하기 쉽게 만들 수 있습니다.
챌린지
쉬움두 개의 입력을 받습니다. 하나는 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;
?>이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 & 흐름의 모든 레슨
7날짜와 시간 다루기
'date()' 함수'time()'을 이용한 Unix 타임스탬프DateTime 객체 소개DateTime 객체 포맷팅DateTime 객체 수정하기요약: 날짜 계산직접 연습해 보세요: 온라인 PHP 컴파일러