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

PHP와 MySQL에서 날짜 형식을 dd/mm/yyyy로 변경하는 방법

개요

데이터베이스에 저장된 날짜는 기본적으로 yyyy-mm-dd 형식으로 저장되지만, 화면에 출력할 때는 상황에 따라 다른 형식이 필요할 수 있습니다. 이 글에서는 PHP와 MySQL에서 날짜 형식을 dd/mm/yyyy로 변경하는 방법을 예제와 함께 자세히 알아보겠습니다.

PHP에서 date() 함수로 날짜 형식 변경하기

PHP에서는 date() 함수를 사용하여 날짜 형식을 손쉽게 변경할 수 있습니다. 기본 문법은 다음과 같습니다.

date(d/m/Y, yourDateTimeVariable);

먼저 strtotime() 함수를 사용해 문자열을 날짜(타임스탬프)로 변환한 뒤, 원하는 형식으로 출력할 수 있습니다. 아래는 datetime 값을 포맷하는 PHP 코드 예제입니다.

$LogintDate = strtotime('2019-01-12');
echo date('d/m/Y', $LogintDate);

실행 결과

12/01/2019

위 코드에서 '2019-01-12'라는 문자열이 12/01/2019(일/월/년) 형식으로 성공적으로 변환된 것을 확인할 수 있습니다.

MySQL에서 DATE_FORMAT() 함수로 날짜 형식 변경하기

MySQL에서는 DATE_FORMAT() 함수를 사용하여 조회 시점에 날짜 형식을 변경할 수 있습니다. 기본 문법은 다음과 같습니다.

SELECT DATE_FORMAT(yourColumnName,'%d/%m/%Y') as anyVariableName FROM yourTableName;

예제 테이블 생성

문법을 실제로 이해하기 위해 테스트용 테이블을 먼저 생성해 보겠습니다.

mysql> create table Date_FormatDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> LoginDate datetime,
    -> PRIMARY KEY(Id)
    -> );
Query OK, 0 rows affected (0.64 sec)

샘플 데이터 입력

INSERT 명령을 사용하여 여러 개의 날짜 데이터를 입력합니다.

mysql> insert into Date_FormatDemo(LoginDate) values(curdate());
Query OK, 1 row affected (0.17 sec)

mysql> insert into Date_FormatDemo(LoginDate) values(now());
Query OK, 1 row affected (0.27 sec)

mysql> insert into Date_FormatDemo(LoginDate) values('2019-11-12');
Query OK, 1 row affected (0.11 sec)

mysql> insert into Date_FormatDemo(LoginDate) values(date_add(now(),interval 2 day));
Query OK, 1 row affected (0.13 sec)

mysql> insert into Date_FormatDemo(LoginDate) values(date_add(curdate(),interval -2 day));
Query OK, 1 row affected (0.22 sec)

저장된 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from Date_FormatDemo;

조회 결과는 다음과 같습니다.

+----+---------------------+
| Id | LoginDate |
+----+---------------------+
| 1 | 2019-01-12 00:00:00 |
| 2 | 2019-01-12 22:53:53 |
| 3 | 2019-11-12 00:00:00 |
| 4 | 2019-01-14 22:54:27 |
| 5 | 2019-01-10 00:00:00 |
+----+---------------------+
5 rows in set (0.00 sec)

dd/mm/yyyy 형식으로 변환하여 조회

이제 DATE_FORMAT() 함수를 적용하여 날짜를 dd/mm/yyyy 형식으로 변경해 보겠습니다.

mysql> select date_format(LoginDate,'%d/%m/%Y') as DateFormat from Date_FormatDemo;

변환 결과는 다음과 같습니다.

+------------+
| DateFormat |
+------------+
| 12/01/2019 |
| 12/01/2019 |
| 12/11/2019 |
| 14/01/2019 |
| 10/01/2019 |
+------------+
5 rows in set (0.00 sec)

정리

지금까지 살펴본 것처럼, PHP에서는 date() 함수와 strtotime() 함수를 조합하고, MySQL에서는 DATE_FORMAT() 함수를 사용하면 저장된 날짜 데이터를 원하는 형식(dd/mm/yyyy 등)으로 자유롭게 변환하여 출력할 수 있습니다. 데이터베이스에는 표준 형식으로 날짜를 저장하고, 출력 단계에서만 형식을 변환하는 것이 유지보수 측면에서 권장되는 방법입니다.