본문 바로가기
PHP

[PHP] DatePeriod와 DateInterval 활용하여 반복되는 날짜 자동 처리하기

by teamnova 2025. 7. 18.
728x90

안녕하세요,

 

오늘은 DatePeriod와 DateInterval 활용하여 반복되는 날짜를 자동으로 처리해보도록 하겠습니다. 

 

DatePeriod 클래스

PHP에서 제공하는 클래스로, 시간 간격을 나타내는 클래스입니다.

'P1D' → 1일
'P1W' → 1주
'P1M' → 1달
'PT1H' → 1시간
등 다양한 형식을 지원합니다.

 

DateInterval 클래스

PHP에서 제공하는 클래스로,  특정 간격(DateInterval)에 따라 반복되는 날짜들을 만들어주는 클래스입니다.

 

 

예제 코드 

<?php
// 시작 날짜: 2025년 6월 1일
$start = new DateTime('2025-06-01');

// 1주일 간격
$interval = new DateInterval('P1W');

// 반복 종료 날짜: 2025년 7월 1일
$end = new DateTime('2025-07-01');

// DatePeriod 객체 생성 (끝나는 날짜 포함되게 하려면 1주 더해줌)
$period = new DatePeriod($start, $interval, $end->add($interval));

// 출력
echo "📆 매주 일요일 일정 리스트:<br><br>";

foreach ($period as $date) {
    if ($date->format('w') == 0) { // 일요일만 출력 (0 = Sunday)
        echo "- " . $date->format('Y-m-d (l)') . "<br>";
    }
}
?>

 

결과 

📆 매주 일요일 일정 리스트:

- 2025-06-01 (Sunday)
- 2025-06-08 (Sunday)
- 2025-06-15 (Sunday)
- 2025-06-22 (Sunday)
- 2025-06-29 (Sunday)
- 2025-07-06 (Sunday)