DateTime 클래스를 활용한 날짜 추출
MySQL의 datetime 필드에서 시간 정보를 제외하고 날짜만 추출하려면 PHP에서 제공하는 DateTime 클래스를 사용하는 것이 가장 안전하고 권장되는 방법입니다. 기본 문법은 다음과 같습니다.
DateTime::createFromFormat("Y-m-d H:i:s", yourDateTimeValue)->format("yourFormatSpecifier");문법 구성 요소
- createFromFormat(): 지정한 형식에 맞춰 날짜·시간 문자열을 해석하여 DateTime 객체를 생성합니다.
- "Y-m-d H:i:s": MySQL datetime 값의 표준 형식(예: 2018-02-13 13:10:15)을 나타냅니다.
- format(): DateTime 객체를 원하는 출력 형식으로 변환합니다.
PHP 코드 예제
위 문법을 실제 PHP 코드에 적용하면 다음과 같이 작성할 수 있습니다.
$MySQLDataBaseDateTime = "2018-02-13 13:10:15";
echo DateTime::createFromFormat("Y-m-d H:i:s", $MySQLDataBaseDateTime)->format("d/m/Y");
실행 결과
13/02/2018
datetime 값 "2018-02-13 13:10:15"에서 시간 부분(13:10:15)은 제거되고, format()에 지정한 형식(d/m/Y)에 따라 "13/02/2018"만 출력됩니다. 이렇게 얻은 값을 그대로 PHP 변수에 할당하여 이후 로직에서 활용할 수 있습니다.
참고: 상황별 대안 방법
- SQL 단계에서 처리: 쿼리에서
SELECT DATE(datetime_column)처럼 MySQL의 DATE() 함수를 사용하면 애초에 날짜만 조회할 수 있어 불필요한 데이터 전송을 줄일 수 있습니다. - strtotime() 활용:
date("d/m/Y", strtotime($MySQLDataBaseDateTime))형태로도 동일한 결과를 얻을 수 있습니다. 다만 타임존 처리나 오류 검증 측면에서는 DateTime 클래스가 더 견고합니다.