PHP의 date_parse() 함수는 지정된 날짜 문자열을 분석하여 연·월·일·시·분·초 등 날짜와 관련된 상세 정보를 연관 배열(associative array) 형태로 반환하는 함수입니다. 날짜 형식의 유효성 검사나 날짜 데이터를 세부 요소로 분해해야 할 때 유용하게 사용됩니다.
구문 (Syntax)
date_parse(date)
매개변수 (Parameters)
date − 분석하고자 하는 날짜를 나타내는 문자열을 지정합니다. 예: "2017-11-08 11:10:40"
반환값 (Return)
date_parse() 함수는 주어진 날짜에 대한 상세 정보를 담고 있는 연관 배열을 반환합니다. 배열에는 다음과 같은 키가 포함됩니다.
year, month, day − 년, 월, 일 정보
hour, minute, second, fraction − 시, 분, 초 및 소수점 이하 시간 정보
warning_count, warnings − 경고의 개수와 경고 내용
error_count, errors − 오류의 개수와 오류 내용
is_localtime − 현지 시간 여부
예제 1
다음은 date_parse() 함수의 기본적인 사용 예제입니다.
<?php
print_r(date_parse("2017-11-08 11:10:40.5"));
?>출력 결과
위 코드를 실행하면 아래와 같은 결과가 출력됩니다.
Array ( [year] => 2017 [month] => 11 [day] => 8 [hour] => 11 [minute] => 10 [second] => 40 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => )
출력 결과에서 볼 수 있듯이, 날짜 문자열이 각 구성 요소별로 분리되어 연관 배열에 저장되며, 경고(warnings)와 오류(errors) 항목도 함께 확인할 수 있습니다.
예제 2 − 상대적 날짜 표현 사용하기
date_parse() 함수는 "+2 week", "+2 hour"처럼 상대적인 날짜 표현도 함께 처리할 수 있습니다. 이 경우 결과 배열에 relative 키가 추가됩니다.
<?php
print_r(date_parse("2017-10-10 11:00:00.5 +2 week +2 hour"));
?>출력 결과
위 코드를 실행하면 아래와 같은 결과가 출력됩니다.
Array ( [year] => 2017 [month] => 10 [day] => 10 [hour] => 11 [minute] => 0 [second] => 0 [fraction] => 0.5 [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => [relative] => Array ( [year] => 0 [month] => 0 [day] => 14 [hour] => 2 [minute] => 0 [second] => 0 ) )
상대적 표현인 "+2 week"는 day 값으로 14로, "+2 hour"는 hour 값으로 2로 변환되어 relative 배열에 저장된 것을 확인할 수 있습니다.
정리
date_parse() 함수는 날짜 문자열을 체계적으로 분석하여 각 구성 요소를 배열로 반환하기 때문에, 입력된 날짜의 유효성 검사(errors, warnings 확인)나 날짜 데이터의 세부 정보 추출에 매우 유용합니다. 특히 사용자가 입력한 날짜 형식이 올바른지 판단해야 하는 경우 error_count와 warning_count 값을 활용하면 손쉽게 검증 로직을 구현할 수 있습니다.