728x90
PHP에서 날짜와 시간을 다룰 때 가장 많이 사용하는 함수 중 하나가 date()입니다. 특히 특정 기준일을 설정하고, 그 기준일을 중심으로 지난 12개월(1년)을 구하고 싶을 때 date()와 strtotime()을 활용하면 간단하게 해결할 수 있습니다. 이번 포스팅에서는 PHP에서 특정 기준일(예: 2024년 12월)을 기준으로 지난 12개월 동안의 연월을 구하는 방법을 자세히 알아보겠습니다.
1. PHP date() 함수란?
PHP의 date() 함수는 날짜와 시간을 특정 형식으로 출력할 수 있도록 도와줍니다. 기본적인 사용법은 다음과 같습니다.
<?php
echo date("Y-m-d"); // 오늘 날짜 출력 (예: 2025-03-11)
?>
이제 이 함수를 활용하여 특정 날짜를 기준으로 지난 12개월을 구하는 방법을 살펴보겠습니다.
2. 특정 기준일을 설정하고 지난 12개월 구하기
특정 기준일을 설정한 후, strtotime()을 이용해 루프를 돌면서 지난 12개월을 구할 수 있습니다.
✅ strtotime()을 이용한 방법
<?php
$baseDate = "2024-12"; // 기준 년월 설정
for ($i = 0; $i < 12; $i++) {
$date = date("Y-m", strtotime("-$i months", strtotime($baseDate . "-01")));
echo $date . "\n";
}
?>
🔍 코드 설명
- 기준 날짜 설정: $baseDate = "2024-12";
- for 문 실행 (12개월 반복): $i = 0부터 $i < 12까지 증가
- 이전 달 계산: strtotime("-$i months", strtotime($baseDate . "-01"))
- strtotime($baseDate . "-01"): 기준일을 2024-12-01로 변환
- strtotime("-$i months", ...): $i개월 전 날짜 계산
- date()로 연월(Y-m) 포맷으로 변환하여 출력
실행 결과
2024-12
2024-11
2024-10
2024-09
2024-08
2024-07
2024-06
2024-05
2024-04
2024-03
2024-02
2024-01
이렇게 하면 특정 기준일을 기준으로 지난 12개월 동안의 연월을 쉽게 구할 수 있습니다.
3. DateTime 클래스를 활용한 방법
PHP에서는 DateTime 클래스를 사용하여 날짜를 좀 더 객체지향적으로 다룰 수도 있습니다.
<?php
$baseDate = new DateTime("2024-12-01");
for ($i = 0; $i < 12; $i++) {
echo $baseDate->format("Y-m") . "\n";
$baseDate->modify("-1 month");
}
?>
✅ DateTime 방식의 장점
- modify()를 사용하여 직접 날짜 변경 가능
- 가독성이 좋고 유지보수하기 쉬움
- date() 함수보다 다양한 기능을 제공
실행 결과 (동일)
2024-12
2024-11
2024-10
2024-09
2024-08
2024-07
2024-06
2024-05
2024-04
2024-03
2024-02
2024-01
4. 결론
PHP에서 특정 날짜를 기준으로 지난 12개월을 구하는 방법을 살펴봤습니다. date()와 strtotime()을 사용하면 간단하게 해결할 수 있으며, 보다 객체지향적인 접근 방식이 필요하다면 DateTime 클래스를 활용하는 것도 좋은 방법입니다. 여러분의 프로젝트에서 적절한 방법을 선택하여 활용해 보세요!
728x90
'💻 자주 쓰는 PHP 함수' 카테고리의 다른 글
[PHP 함수] dirname() 함수로 디렉토리 정보 다루기 (6) | 2025.03.18 |
---|---|
[PHP 함수] count() 함수 완벽 정리: 기본 개념부터 실전 활용까지 (8) | 2025.03.18 |
[PHP 함수] implode() 함수를 사용하여 배열을 문자열로 만들기 (6) | 2025.03.17 |
[PHP 함수] str_replace() 함수 사용하여 문자열 조작하기 (2) | 2025.03.17 |
[PHP 함수] file_exists() 함수를 사용하여 파일과 디렉토리 존재 여부 확인하기 (4) | 2025.03.14 |