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/>";



+ Recent posts