PHP에서 DateTime 클래스를 활용하면 '11:00 AM'과 같은 12시간제 시간 문자열을 MySQL에서 사용하는 'HH:MM:SS' 형식으로 손쉽게 변환할 수 있습니다.
DateTime::createFromFormat()을 이용한 변환 방법
핵심은 DateTime::createFromFormat() 메서드입니다. 이 메서드는 지정한 입력 형식에 맞춰 문자열을 파싱하여 DateTime 객체를 생성합니다. 이후 format() 메서드로 원하는 출력 형식을 지정하면 됩니다.
PHP 코드 예제
$phpTime = '11:00 AM';
echo('PHP 시간 형식 = ');
echo($phpTime);
// 'H:i A' 형식(시:분 AM/PM)으로 문자열 파싱
$timeFormat = DateTime::createFromFormat('H:i A', $phpTime);
// MySQL 시간 형식(H:i:s)으로 변환
$MySQLTimeFormat = $timeFormat->format('H:i:s');
echo('
');
echo('MySQL 시간 형식 = ');
echo($MySQLTimeFormat);실행 결과
PHP 시간 형식 = 11:00 AM MySQL 시간 형식 = 11:00:00
코드 설명
- 'H:i A': 입력 문자열의 형식을 나타냅니다. H는 24시간제 시간, i는 분, A는 오전/오후(AM/PM) 표시를 의미합니다.
- 'H:i:s': MySQL TIME 컬럼에 저장되는 표준 형식으로, 시:분:초를 의미합니다.
이처럼 DateTime 클래스를 사용하면 별도의 문자열 조작 없이 안정적으로 시간 형식을 변환할 수 있으며, 오후 시간대(예: '03:30 PM' → '15:30:00')도 자동으로 정확하게 처리됩니다.