PHP 주민번호 기반 만 나이 계산 함수 구현 및 그누보드 적용 방법
페이지 정보

본문
PHP 주민번호 기반 만 나이 계산 함수 구현 및 그누보드 적용 방법
그누보드 환경에서 PHP를 이용해 주민등록번호와 생년월일로 만 나이를 정확하게 계산하는 함수를 구현하고 적용하는 방법을 살펴봅니다.
PHP 만 나이 계산 함수 구현
현재 날짜와 생년월일(년, 월, 일)을 인자로 받아 비교하여 만 나이를 반환하는 PHP 함수 예시 코드입니다.
<? function fn_age($yy,$mm,$dd) { $now_year = date("Y"); $now_month = date("m"); $now_day = date("d"); if($mm < $now_month) $age= $now_year - $yy; else if($mm == $now_month) { if($dd <= $now_day) $age= $now_year - $yy; else $age= $now_year - $yy-1; } else $age= $now_year - $yy-1; return $age; } $p_age = fn_age('1899','04','20'); echo $p_age;?>
주의사항
- 제공된 기본 함수 코드에는 주민번호 뒷자리(성별 구분 및 2000년 이후 출생자 세기 판별 등) 처리 로직이 포함되어 있지 않습니다.
주민등록번호 뒷자리의 첫 번째 숫자를 활용하면 출생 연도의 세기를 판별할 수 있습니다. 2000년 이전 출생자와 이후 출생자를 구분하는 기준은 다음과 같습니다.
주민등록번호 뒷자리 첫 번째 숫자에 따른 세기 구분
- 1900년대생: 남성은 1, 여성은 2로 시작합니다.
- 2000년대생: 남성은 3, 여성은 4로 시작합니다.
- 외국인: 1900년대 이전 출생자는 남성 5·여성 6, 2000년 이후 출생자는 남성 7·여성 8로 구분합니다.
따라서 PHP에서 나이를 계산할 때, 주민등록번호 앞 2자리(연도)와 함께 뒷자리 첫 번째 숫자를 조건문으로 확인하여 1900 또는 2000을 더하는 방식으로 정확한 출생 연도를 산출할 수 있습니다.
*참고: 2020년 10월 5일 이후 출생자부터는 뒷자리 중 성별을 제외한 6자리가 임의 번호로 부여되므로, 이 방식은 해당 날짜 이전 출생자에게 적용됩니다.
그누보드 환경에서의 나이 출력 활용
본인인증 등을 통해 생년월일($mb_birth)을 확보한 경우, 위에서 정의한 fn_age 함수를 호출하여 나이를 계산하고 화면에 출력할 수 있습니다.
// 예: 생년월일이 '1990-05-15'인 경우
$birth = '1990-05-15';
list($yy, $mm, $dd) = explode('-', $birth);
$age = fn_age($yy, $mm, $dd);
echo "만 나이: ". $age. "세";
그누보드 회원 정보 수정 페이지(register_form_skin.php 등)에서 입력 필드에 자동으로 나이를 채우려면 자바스크립트와 연동하여 값을 설정하십시오.
상황별 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 생년월일(년·월·일) 데이터가 준비된 상태 | 현재 날짜와 생년월일의 월·일을 비교하여 생일 지남 여부를 판별하는 fn_age 함수 적용 | 함수 코드를 적용하고 반환되는 만 나이 결괏값 확인 |
| 주민등록번호 앞 6자리만 보유한 상태 | 2000년 이전 출생자에 한해 연도 계산이 가능하므로 대상 범위 확인 | 2000년 이후 출생자 포함 시 주민번호 뒷자리 첫 번째 숫자 판별 로직 추가 검토 |
실전 FAQ
Q. 주민번호 뒷자리 성별 구분 코드를 포함해 출생 연도를 판별하는 PHP 코드는 어떻게 작성하나요?
- 예외 및 대안: 기본
fn_age함수는 주민번호 뒷자리를 처리하지 않으므로, 뒷자리 첫 번째 숫자(1·2는 1900년대, 3·4는 2000년대)를 파싱하여 연도에 '19' 또는 '20'을 붙여 세기를 판별하는 전처리 로직을 함수 앞에 추가해야 합니다. - 막히는 지점: 2020년 10월 5일 이후 출생자는 뒷자리가 임의 번호로 부여되므로 기존 세기 판별 및 출생 지역 유추 로직이 적용되지 않습니다.
참고자료
기타 참고자료
- happyjung.com — 주민번호 이용하여 만 나이 구하기 > 기술자료 | 해피정닷컴
- phpschool.com — PHPSCHOOL-Q&A > Mysql/Oracle/Query/DB 질문과답변
- sir.kr — (초보팁) 본인인증시 생년월일, 나이 자동입력 - SIR - 개발자 커뮤니티
- news.kbs.co.kr — 2000년대 출생자, 주민등록번호 뒷자리 3,4로 시작 | KBS 뉴스
- korea.kr — ‘출생의 비밀’ 주민등록번호, 더 안전해진다 - 국민이 말하는 정책 | 뉴스 | 대한민국 정책브리핑
- m.blog.naver.com — 주민등록번호로 나이, 태어난 지역, 성별 구별하기 (엑셀 사용방법) : 네이버 블로그
- 이전글PHP 에러 제어 연산자(@) 사용법과 MySQL 에러 메시지 숨기기 26.09.27
- 다음글PHP fopen 함수 모드 및 사용법 가이드 26.09.26
댓글목록
등록된 댓글이 없습니다.