2011-01-31 4 views
1

특히 전 세계의 특정 도시에 대한 현재 현지 날짜와 시간을 찾을 PHP (-MySQL) 스크립트를 작성하고 싶습니다. DST 변경 사항을 준수해야합니다. 우선 저는 세계의 모든 수도에 대한 현재의 현지 날짜와 시간을 찾고 싶습니다. 불행히도 Oslon 데이터베이스를 사용하여 작업을 수행하는 방법을 알 수 없습니다. 누군가 나를 도울 수 있습니까?PHP에서 Olson 표준 시간대 데이터베이스를 사용하는 방법?

+5

올슨 데이터베이스? [PHP의 시간대 기능] (http://php.net/manual/en/class.datetimezone.php)은 어떻습니까? – deceze

+0

실제로, PHP 시간대 함수는 Olson 데이터베이스를 사용합니다 - http://devzone.zend.com/article/1457-Zend-Weekly-Summaries-Issue-256 – leebriggs

답변

0

약 1 년 전 나는 PHP의 TimeZones를 망치고 있었지만 진지하게 생각하지 않았습니다. 그러나 일부 코드를 작성하고 라이브 데모 + 다운로드를 사용할 수 있습니다 here (< 300K).

스크린 샷

enter image description here

그리고는 YES, 그것은 DST 규칙을 준수하고 있습니다.

+0

이 링크는 이제 죽었습니다. – Jason

+1

@Jason, 고맙습니다. 다운로드 및 livedemo 링크가 업데이트됩니다. 내가 최근에 일부 도메인을 종료했다 아마 stackoverflow에 몇 가지 더 죽은 링크가 있습니다. – Wh1T3h4Ck5

0

TL : DR : PECL의 timezonedb 및 내장 된 DateTimeZone을 사용하십시오. 이 실제로 개의 최신 시간대 업데이트를 원할 경우 Upgrading Olson tz database natively implemented in PHP을 참조하십시오.


  1. PHP의 내장 DateTimeZone class에 사용 시간대 데이터베이스 올슨의 기반으로합니다. 끊임없이 변화하는 시간대 정보에 민감한 오래된 릴리스 일 수도 있습니다.

  2. 설치 및 업그레이드하고 최신 시간대 데이터를 사용하여 공식 PHP의 방법 PECL의 timezonedb :

    pecl upgrade timezonedb 
    

    이 패키지는 일반적으로 잘되어야합니다 IANA의 (읽기 올슨의) 시간대 데이터베이스의 최신 버전으로 업데이트됩니다 대부분의 경우 충분합니다.

  3. 시간대 데이터베이스의 최하점에 살고 싶다면, 즉 Olson 시간대 데이터베이스의 공식 릴리스에 아직 포함되어 있지 않은 시간대 업데이트를보고 싶다면 현재 관리자의 github (https://github.com/eggert/tz) 같은 소스를 사용할 수 있습니다)를 사용하여 최신 시간대 데이터를 가져옵니다. 예를 들어, 2017 년 2 월 현재 몽골의 2017 년 해산 DST는 최신판 (2016j)에 포함되어 있지 않지만 위의 github 링크에 포함되어 있습니다.

    그러나 PHP에서이를 사용하려면 timezonedb 확장자를 다시 컴파일해야합니다. 출혈 가장자리 데이터 (어쩌면 사용자 정의 패치 포함)에서 PECL의 timezonedb를 다시 컴파일/업데이트하는 방법은 Upgrading Olson tz database natively implemented in PHPhttps://github.com/derickr/timelib을 참조하십시오. 여기에는 timezonedb.h을 생성하는 코드가 포함되어 있으며 timezonedb PECL 패키지로 최신 데이터를 컴파일하는 데 사용됩니다.

관련 문제