Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP checkdate() 함수 완벽 가이드 – 날짜 유효성 검사 방법

PHP의 checkdate() 함수는 주어진 날짜가 그레고리력(양력) 기준으로 실제 존재하는 날짜인지 검사하는 내장 함수입니다. 예를 들어 2월 30일처럼 존재할 수 없는 날짜를 입력하면 FALSE를 반환하고, 유효한 날짜라면 TRUE를 반환합니다.

문법(Syntax)

checkdate(month, day, year)

매개변수(Parameters)

  • month − 월을 의미하며, 1부터 12 사이의 정수로 지정합니다.

  • day − 일을 의미하며, 1부터 31 사이의 정수로 지정합니다.

  • year − 연도를 의미하며, 1부터 32767 사이의 정수로 지정합니다.

반환값(Return Value)

checkdate() 함수는 전달된 날짜가 유효하면 TRUE(bool(true)), 유효하지 않으면 FALSE(bool(false))를 반환합니다.

참고: 이 함수는 윤년을 자동으로 고려하기 때문에, 예를 들어 2020년 2월 29일은 TRUE를 반환하지만 2019년 2월 29일은 FALSE를 반환합니다. 따라서 사용자 입력값으로 날짜를 받을 때 매우 유용하게 활용됩니다.

예제 1

다음은 특정 날짜의 유효성을 검사하는 기본적인 예제입니다.

<?php
   var_dump(checkdate(10, 29, 2018));
?>

출력 결과

bool(true)

2018년 10월 29일은 실제로 존재하는 날짜이므로 TRUE가 반환됩니다.

예제 2

이번에는 변수에 값을 담아 검사하는 예제를 살펴보겠습니다.

<?php
   $month = 9;
   $day = 30;
   $year = 2018;
   var_dump(checkdate($month, $day, $year));
?>

출력 결과

bool(true)

9월은 30일까지 존재하는 달이므로 TRUE가 반환됩니다.

유효하지 않은 날짜의 경우

반대로 존재하지 않는 날짜를 입력하면 어떻게 될까요?

<?php
   var_dump(checkdate(2, 30, 2021)); // 2월 30일은 존재하지 않음
?>

출력 결과

bool(false)

정리

checkdate() 함수는 월, 일, 연도 세 개의 인자를 받아 해당 날짜가 그레고리력상 유효한지 판별합니다. 폼 입력 검증, 데이터베이스 저장 전 날짜 확인 등에서 오류를 사전에 방지할 수 있는 간편하고 실용적인 함수이므로, 날짜 관련 로직을 작성할 때 적극적으로 활용해 보시기 바랍니다.