본문 바로가기
웹 개발

날짜와 시간을 저장하고 이용하는 방법에 관한 생각

by 똑똑한 영장류 2013. 1. 14.

 

 

웹 개발을 할 때, 정보를 데이터베이스에 저장하는 일은 거의 불가피한 일입니다.

 

게시판도 그렇고, 무언가 이용자로부터 정보를 받으면, 저장을 하려고 하죠.

그중에서, 날짜는 어떻게 처리하는것이 좋은지 한번 생각해봤습니다.

 

이용자가 게시판에 글을 작성했다고 가정합시다.

그러면, 글이 작성된 시간을 데이터베이스에 함께 저장을 해야하겠네요.

 

사람이 보기에는, '2013년 1월 14일 밤 11시 5분 30초' 에 저장했음.이라고 바로 보이면 좋겠죠.

'2013년 1월 14일 밤 11시 5분 30초' 문자열을 데이터베이스에 바로 저장할 수도 있겠습니다만, 데이터베이스에서 이 문자열을 가져와, '밤'을 '오후'로 표시하고 싶을 경우에는 귀찮은 일이 생겨버립니다.

 

정보를 보여주는 방법은 여러가지일 수가 있겠지요. 하기 나름입니다.

다만, 순수 정보는 처리하기 쉬운 형태로 데이터베이스에 저장을 해 놓고, 보여주는 건 내 마음대로 할 수 있는 것이 효율적이라 생각됩니다.

 

처리하기 쉬운 형태의 시간 정보를 저장하고, 읽어오고, 보여줄 모습을 바꾸고...

이 과정이 php와 mysql을 이용할 때, 어떻게 처리되는 것이 좋은지에 관한 생각입니다.

 

 


1. php에서 현재 시간을 구하는 방법

 

int time()

1970년 1월 1일 0시 0분 0초를 시작으로 지나간 시간을 초단위로 리턴해 줍니다.

리턴값은 int 형입니다.

 

1분은 60초

1시간은 3,600초

1일은 86,400초

1년은 365일 경우, 31,536,000초

100년은 3,153,600,000초

 

100년의 경우, 10자리수 네요. 1,000년은 11자리 수겠군요.

 

mysql 데이터베이스에 테이블 만들고, 시간을 저장할 필드를 생성할 때, INT 로 만들면 되겠군요.

 

 



2. 데이터베이스에 저장하는 방법


시간은 int 형으로 다룰 것이기 때문에, 테이블 작성시 시간관련 필드는 int 형으로 설정합니다.


쿼리 등 mysql 관련 내용은 깊게 가지 않습니다. ㅎ





3. 데이터베이스에서 시간을 읽어와서 표시하는 방법


마찬가지로 시간을 읽어오는 부분은 mysql 영역이라 패스~하고..


표시하는 부분에 관한 것은 php 함수, date()에 모두 있습니다.



요점인 즉, 시간정보를 int 형인 타임스탬프를 기준으로 처리하자..라는 것입니다.



타임 스탬프 값을 다루면서, 일주일 후, 일년 후 등등 시간 연산은 어떻게 할 수 있을까~요?


그것도 살펴보고 글 올리겠습니다.





 

 

 

 

 

 

 

 

 

 

댓글