PHP로 웹 프로그래밍시 "미팅 일시"를 기준으로 DB의 정보를 정렬해서 웹에 보여준다고 가정할때 어떤 식으로 처리하면 좋을까?
예를 들어 미팅 일시는 2018.6.19 15:30과 같은 시간이라고 가정해 보자. DB의 특정 필드에 이 값 그대로를 저장한다면 추후에 미팅 일시 필드를 기준으로 오름차순이나 내림 차순으로 정렬하기가 불편해 지게 된다.
이럴 경우에 '타임스탬프'를 이용하면 모든 것이 깔끔해진다.
타임스탬프란 1970년 1월 1일 0시 0분 0초를 기점으로 총 경과한 시간을 초 단위로 표현한 정수 값이다.
가령 2018.6.19 4:28분 정도의 시간이면(초는 귀찮으니 그냥 생략) 타임스탬프로 1529393299 정도의 값이 나올 것이다.
정리하면
-. "미팅 일시"를 사람이 입력할때는 2018.6.19 15:30과 같은 형식으로 입력
-. 2018.6.19 15:30의 시간을 DB에 저장할 때는 이에 해당하는 타임스탬프로 저장
-. DB에 저장되어 있는 "미팅 일시" 필드의 타임스탬프를 기준으로 정렬 후 웹 페이지에 보여줄 때는 타임스탬프를 "년.월.일 시:분"과 같은 형태로 표시
결국은 이 과정을 위해서는
타임스탬프 시간 ↔ 년.월.일 시:분
의 시간 형태로 상호 변환을 처리하는 과정이 필요하게 되어진다.
이를 위한 함수를 PHP에서는 제공해 주고 있다. 그 함수가
date()
strtotime() 두 함수이다.
년.월.일 시:분의 값을 타임스탬프로 변환해 보자.
여기서 참고적으로 "1970.01.1 13:22"과 같은 형태는 strtotime() 함수가 인식하지 못하는 형태이다. 인식할수 있는 형태는
1970-01-01 13:22 혹은
1970/01/01 13:22과 같은 형태라야 한다.
$meetingTime = '1970-01-1 13:22';
echo "1970년 1월 1일 13:22을 타임스탬프 값으로 : ".strtotime($meetingTime)."<br/>";
1970년 1월 1일 13:22의 타임스탬프 값은 15720이다.
이번에는 타임스탬프의 값을 년.월.일 시:분의 형태로 변환해 보자.
$mTimeStamp = '15720';
echo "타임스탬프의 값을 한국형 시간형태로 변환 : ".date('Y.m.d H:i', $mTimeStamp)."<br/>";
'PHP' 카테고리의 다른 글
PHP로 XML 생성 방법 및 생성시 주의 사항 (0) | 2020.02.07 |
---|---|
웹 페이지에서 테이블(table)의 짝수 행의 색상을 다른 색으로 표시하기 (0) | 2018.06.19 |
PHP에서 2차원 배열의 내용을 출력하는 편리한 방법 (0) | 2016.04.01 |
안드로이드에서 JSON으로 보낸 데이터를 PHP에서 수신하기 (0) | 2015.11.02 |
PHP에서 BOM관련 에러 (0) | 2015.10.02 |