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

PHP와 MySQL에서 시간 형식 변환하기: strtotime()과 DATE_FORMAT() 활용법

PHP/MySQL에서 시간 다루기

PHP와 MySQL에서 시간을 다룰 때는 strtotime() 함수를 활용하면 매우 편리합니다. 이 함수는 '8:55 PM'처럼 사람이 읽기 쉬운 시간 표현을 유닉스 타임스탬프로 변환해 주며, date() 함수와 함께 사용하면 원하는 형식으로 시간을 손쉽게 출력할 수 있습니다.

PHP에서 12시간제를 24시간제로 변환하기

다음은 strtotime() 함수를 사용해 '8:55 PM'과 같은 12시간제 시간을 24시간제(H:i:s) 형식으로 변환하는 PHP 코드입니다.

$timeValue = '8:55 PM';
$changeTimeFormat = date('H:i:s', strtotime($timeValue));
echo("24시간제로 변환된 형식 = ");
echo($changeTimeFormat);

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

24시간제로 변환된 형식 = 20:55:00

즉, 오후 8시 55분이 24시간제 표기인 20:55:00으로 정확하게 변환된 것을 확인할 수 있습니다.

MySQL에서 24시간제를 12시간제로 변환하기

반대로 MySQL에서는 DATE_FORMAT() 함수를 사용해 24시간제 시간을 12시간제 형식으로 변환할 수 있습니다. 아래 쿼리는 '2019-03-12 20:55:00'이라는 DATETIME 값을 '%l:%i %p' 형식(12시간제, AM/PM 표시 포함)으로 변환합니다.

mysql> SELECT CONCAT('MySQL에서 변환된 12시간제 형식 = ', DATE_FORMAT('2019-03-12 20:55:00', '%l:%i %p')) AS OriginalTimeFormat;

쿼리 실행 결과는 다음과 같습니다.

+------------------------------------------------+
| OriginalTimeFormat |
+------------------------------------------------+
| MySQL에서 변환된 12시간제 형식 = 8:55 PM |
+------------------------------------------------+
1 row in set (0.00 sec)

정리

PHP의 strtotime() 함수는 문자열 형태의 시간을 타임스탬프로 변환한 뒤 date() 함수로 원하는 출력 형식을 지정할 수 있고, MySQL의 DATE_FORMAT() 함수는 데이터베이스에 저장된 DATETIME 값을 다양한 형식으로 변환해 줍니다. 이 두 가지 방법을 함께 활용하면 PHP와 MySQL 사이에서 시간 형식을 자유롭게 주고받으며 처리할 수 있습니다.