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 (심층 탐구)
DateTime
과 DateInterval
은 PHP 5.2.0부터 도입되었습니다. 이전에는 strtotime()
과 mktime()
같은 함수들이 주로 사용되었습니다.
대체법
strtotime()
는 문자열을 분석해 Unix 타임스탬프를 반환합니다. 이를 사용해 과거나 미래 날짜를 얻을 수도 있습니다:
echo date('Y-m-d', strtotime('+10 days')); // 10일 후
구현 세부사항
시간대 처리를 위해 DateTimeZone
클래스를 사용할 수 있습니다. 날짜 계산 시 시간대가 중요합니다. 오류 방지를 위해 try-catch
블록 내에서 날짜 관련 연산을 수행하는 것이 좋습니다.