1

주제: timestamp 처리?

현재 DB에는 "1161930436"라고 들어가 있습니다.

이는 2006-10-27 15:27:16 GMT이고, 2006-10-28 00:27 +09:00입니다.

그런데 표시는 "2006/10/27 15:27"라고 되는군요. 시간대는 한국입니다.

timestamp는 1970-01-01 GMT를 기준으로 하는 절대값아닌가요?

태터 내부에서는 1970-01-01 KST를 기준으로 해서 쓰고 있는 건가요?

(시간대를 세계표준시간으로 했더니  2006/10/27 06:27로 표시되는 걸 보면, 그런 것 같군요 sad )

2

답글: timestamp 처리?

로컬 서버의 시간대와 비교해서 맞춰주니까, GMT를 기준으로 한 서버에 깔면 또 정상이 될 겁니다. smile
GMT기준의 시간대로 돌아가는 서버에 설치하시고 데이터 복원을 시도해 보시어요-

덧) '시간대' 로 검색결과 예전에 http://forum.tattersite.com/ko/viewtopic.php?id=671 등등의 논의가 있었군요.^^
http://forum.tattersite.com/ko/viewtopi … 5213#p5213 이런 이야기도 있었습니다. (이건 'timezone'으로 검색해 봤습니다^^)

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

3

답글: timestamp 처리?

음. 테스트한 서버는 BIOS 시간은 KST로 돌아가고, KST로 설정되어 있습니다. timezone 설정은 php에서 "Asia/Seoul"으로 나오는군요.

이 설정을 이용해서 smart하게 import하는 것이 불가능한가요?...라고 여쭤보려고 했더니 timezone 관련 기능은 PHP 5.1에서 추가되었군요 sad


제가 건의하는 건, 블로그 설정의 시간대로 보정을 하든가, 아니면 GMT를 사용하든가..입니다.

후자는 export할 때 timestamp를 이용하지 않고 "2006-10-28 00:27 +09:00" 의 문자열을 이용하면 됩니다. mysql의 datetime 데이타타입이 언제부터 있는지 모르겠네요.. (mysql5 경우 timezone 기능도 있는 것 같던데, 이전 버전이 문제군요) PHP4에 gmdate 등 GMT 관련 함수는 존재하는 것 같네요.


블로그 설정의 시간대로 보정을 한다는 것은, 다음과 같습니다.

제가 블로그 설정에서 시간대를 "대한민국"이라고 해놓고,  1970-01-01 00:00 KST (실제로는 1970-01-01 09:00 GMT) 에 글을 하나 썼다고 칩시다. (이걸 저장을 어떻게 하고 있든 간에) export 할 때는 GMT로 보정해서 timestamp를 사용하는 겁니다. 1이 아니라 9*60*60 정도가 되겠군요..

거꾸로 import할 때에는, import하는 블로그가 자신의 시간대 설정을 알고 있을껍니다. 이를 이용해서 (어떻게 저장하든 간에) GMT를 올바르게 자신의 시간대에 맞추어 보정할 수 있게됩니다.


지금은, 제가 블로그 세팅에 세계표준시각이나 대한민국이나 뭘로 해놓든 동일하게 처리를 해버립니다. timestamp를 서버 설정에 맞춰 처리하는 것 보다 블로그 설정에 맞춰서 하는 것이 맞지 않을까요? 어차피 GMT로 처리를 하는 것이 아니라면 말이죠 smile