PHP

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

teamnova 2025. 7. 18. 21:01
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)