미래나 과거의 날짜 계산하기

PHP:
미래나 과거의 날짜 계산하기

How to: (어떻게 하나요?)

PHP는 날짜 계산을 하기 위해 DateTime 클래스와 DateInterval 클래스를 제공합니다. 여기 간단한 예제들이 있습니다:

<?php
// 오늘 날짜
$today = new DateTime();
echo $today->format('Y-m-d H:i:s'); // 예: 2023-04-15 14:20:00

// 10일 후
$futureDate = clone $today;
$futureDate->add(new DateInterval('P10D')); // P는 기간(period), D는 일(day)을 의미
echo $futureDate->format('Y-m-d H:i:s'); // 예: 2023-04-25 14:20:00

// 3주 전
$pastDate = clone $today;
$pastDate->sub(new DateInterval('P3W')); // W는 주(week)를 의미
echo $pastDate->format('Y-m-d H:i:s'); // 예: 2023-03-25 14:20:00
?>

Deep Dive (심층 탐구)

DateTimeDateInterval은 PHP 5.2.0부터 도입되었습니다. 이전에는 strtotime()mktime() 같은 함수들이 주로 사용되었습니다.

대체법

strtotime()는 문자열을 분석해 Unix 타임스탬프를 반환합니다. 이를 사용해 과거나 미래 날짜를 얻을 수도 있습니다:

echo date('Y-m-d', strtotime('+10 days')); // 10일 후

구현 세부사항

시간대 처리를 위해 DateTimeZone 클래스를 사용할 수 있습니다. 날짜 계산 시 시간대가 중요합니다. 오류 방지를 위해 try-catch 블록 내에서 날짜 관련 연산을 수행하는 것이 좋습니다.

See Also (더 보기)