예를 들어 미팅 일시는 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/>";
댓글 없음:
댓글 쓰기