특정 도시의 지역시각을 구하고 싶습니다.
      글쓴이: hermit / 작성시간: 목, 2003/11/20 - 4:36오후    
  
  예를 들어서 서울, LA, Arizona, Chicago, Calgary, 등의 지역 시간을 얻고 싶습니다. PHP를 통해서 웹에서 출력해주는 것입니다.
제가 검색하여 본 바로는 단순히 제가 호스팅 받는 원격 서버의 기준시각으로부터 특정 지역의 시간차이를 단순히 계산하여 보여주더군요. 이러한 방법으로는 일광절약시간(서머타임)을 고려할 수가 없다고 봅니다. 따라서 일광절약시간을 고려하여 특정 지역의 시각을 확인할 수 있는 방법이 없을까요?
자바스크립트로 된 소스들은 사용자 클라이언트 시스템의 시각을 단순히 보여주는 것이었는데요. 제가 원하는 것은 제 홈에 방문하는 다른 지역에 있는 분들이 타지역의 시간을 좀 확인하게끔 해주고 싶어서입니다. ^^
서머타임을 고려해서 시간을 돌리기 위해서는 수동으로 매번 시간을 조정해줄 수 밖에 없는 것인지요. 좋은 방법이나 아이디어가 있으시다면 일러주세요.
ps. 그리고 갑자기 들은 의문인데요. 북미지역에서 윈도우나 리눅스 같은 운영체제들은 서머타임에 어떻게 대처하나요? 매년 한 시간 씩 줄었다 늘었다 하는데. 그걸 매번 사용자들이 변경해야 하나요? ^^
ps1. 수정해서 추가하는데요. 시카고에 사는 한 분에 말에 의하면 영문윈도우의 경우에는 서머타임에 구애 받지 않고 시스템이 알아서 시각 설정을 해준다고 하네요. 따라서 시스템 호출로 특정 지역의 시각을 알아낼 수 있을 것 같은데요. 도와주세요. ㅠㅠ
Forums: 


[code:1]% env TZ=GMT+0900 dateThu Nov
TZ환경변수를 수정하고 date 관련 함수를 부르면 되지 않을까요? 유닉스 timezone info는 서머타임에 대한 처리도 하는 걸로 아는데요.
p.s. TZ값은 OS에 따라 다를 수 있습니다. 위는 FreeBSD...
--
익스펙토 페트로눔
좋은 답변이 되었습니다.
일단 고맙다는 말씀을 전합니다. =)
제가 구현한 방식은 다음과 같이 php 상에서 구현을 해보았습니다.
putenv('TZ=Canada/Pacific'); $tz['Vancouver'] = date('D M jS h:i a'); putenv('TZ=Canada/Mountain'); $tz['Calgary'] = date('D M jS h:i a'); putenv('TZ=America/Chicago'); $tz['Chicago'] = date('D M jS h:i a');사실 일러주신대로 해서 php 라이브러리 system 함수를 이용해서 얻은 결과를 임의로 파싱을 할까 생각했는데요. putenv, getenv란 함수가 php에서 제공되고 있었네요. (php.net putenv 함수 설명 밑 사용자 코멘트에 예로서 적혀 있더군요.) 그리고 제가 호스트 서버는 안녕 리눅스(oops.org)에 경우에는 /usr/share/zoneinfo에 가능한 지역정보가 잘 있었습니다. man 페이지에 의하면 /usr/lib/zoneinfo 디렉토리에 지역정보가 저장되어 있을 수도 있다는군요. 8)
2006년 1월 28일만 보고 산다 -_-;
댓글 달기