특정 도시의 지역시각을 구하고 싶습니다.

hermit의 이미지

예를 들어서 서울, LA, Arizona, Chicago, Calgary, 등의 지역 시간을 얻고 싶습니다. PHP를 통해서 웹에서 출력해주는 것입니다.

제가 검색하여 본 바로는 단순히 제가 호스팅 받는 원격 서버의 기준시각으로부터 특정 지역의 시간차이를 단순히 계산하여 보여주더군요. 이러한 방법으로는 일광절약시간(서머타임)을 고려할 수가 없다고 봅니다. 따라서 일광절약시간을 고려하여 특정 지역의 시각을 확인할 수 있는 방법이 없을까요?

자바스크립트로 된 소스들은 사용자 클라이언트 시스템의 시각을 단순히 보여주는 것이었는데요. 제가 원하는 것은 제 홈에 방문하는 다른 지역에 있는 분들이 타지역의 시간을 좀 확인하게끔 해주고 싶어서입니다. ^^

서머타임을 고려해서 시간을 돌리기 위해서는 수동으로 매번 시간을 조정해줄 수 밖에 없는 것인지요. 좋은 방법이나 아이디어가 있으시다면 일러주세요.

ps. 그리고 갑자기 들은 의문인데요. 북미지역에서 윈도우나 리눅스 같은 운영체제들은 서머타임에 어떻게 대처하나요? 매년 한 시간 씩 줄었다 늘었다 하는데. 그걸 매번 사용자들이 변경해야 하나요? ^^

ps1. 수정해서 추가하는데요. 시카고에 사는 한 분에 말에 의하면 영문윈도우의 경우에는 서머타임에 구애 받지 않고 시스템이 알아서 시각 설정을 해준다고 하네요. 따라서 시스템 호출로 특정 지역의 시각을 알아낼 수 있을 것 같은데요. 도와주세요. ㅠㅠ

cjh의 이미지

% env TZ=GMT+0900 date
Thu Nov 20 09:27:33 GMT 2003
% env TZ=Asia/Seoul date
Thu Nov 20 18:27:38 KST 2003
% env TZ=America/Chicago date
Thu Nov 20 03:28:13 CST 2003

TZ환경변수를 수정하고 date 관련 함수를 부르면 되지 않을까요? 유닉스 timezone info는 서머타임에 대한 처리도 하는 걸로 아는데요.

p.s. TZ값은 OS에 따라 다를 수 있습니다. 위는 FreeBSD...

--
익스펙토 페트로눔

hermit의 이미지

일단 고맙다는 말씀을 전합니다. =)

제가 구현한 방식은 다음과 같이 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일만 보고 산다 -_-;

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.