2011-09-20 12 views
1

가능한 중복 :
Daylight saving time and Timezone best practices 기본적으로일광 절약 문제

나는 다음과 같은 문제가있다 : 나는

을 모든 GMT 오프셋이있는 테이블이 있고 계산 된 I에 따라 사용자 시간은 서버 시간에 비례하지만 일부 시간은 한 시간 씩 해제됩니다.

내 함수는 다음과 같습니다. 그리니치 표준시 +/- 3600 * usersTZ (GMT 오프셋)입니다. 런던은 괜찮아 보이는데, 호주는 괜찮아 보이지만, 예를 들어, 대신에 사모아가있는 것 같아요 : 5 it`` 6.

나는 이것이 일광 절약제의 경우 일 수 있다고 생각 했습니까?

+0

[PHP의 DateTime 및 strtotime은 DST를 인식하고 있습니다] (http://stackoverflow.com/questions/2505681/timezone-conversion-in-php/2505687#2505687). 대신 사용하십시오. – Gordon

+0

Gordon에게 감사 드려요. 그러나 포럼 로봇처럼 대답하기 전에 질문하십시오. p. 나는 위의 주제를 이미 확인했다. strtotime이 작동하지 않는다. 사모아의 시간이 strtotime의 'Pacific/Samoa'시간대에 올바르게 표시되지 않는다. 이제는 사모아라고 생각하기 때문에 월요일 (WST)은 오후 9시 1 분이어야한다. GMT -11은 오후 10시입니다. 게다가, 나는 각 클라이언트의 TZ에 기초하여 이것을 할 필요가있다. – Gabriel

+0

왜 나는 처음부터 바로 제안했던 것을 제안한 대답을 왜 받아들 였는지 궁금하다. – Gordon

답변

2

PHP는 기본적으로 시간대를 처리 할 수 ​​있습니다. America/New_York처럼 olson format에 시간대를 설정하면됩니다.

그런 다음 date_default_timezone_set 또는 시간대를 인식하는 다른 PHP DateTime 자료를 사용할 수 있습니다.

조금만 PHP docs을 열람하는 것이 좋습니다. 특히 herehere입니다.

+0

네,하지만 전체 스크립트에서 모든 날짜 및 시간 함수의 모든 날짜 및 시간 동작을 변경하지는 않습니다. 단 하나의 함수 만 수정할 수 있으며 내 서버가 아니며 기능을 내 요구 사항으로 변경합니다. 개발자는 옵션이 아닙니다. – Gabriel

+0

그것은 그것을하는 간단한 방법의 예일뿐입니다. 'DateTimeZone' 객체를 매개 변수로 사용하는 대신'DateTime' 클래스를 사용할 수 있습니다. 전에 말했듯이, 나는 당신이 문서를 읽는 것을 강력하게 권장합니다. – blockhead

+0

시도해 보았습니다. 그러나 클래스를 인식하지 못한다고 말하면 PHP가이를 염두에두고 컴파일되지 않았다는 것을 두려워합니다. PHP를 다시 컴파일하지 않아도됩니다. – Gabriel

관련 문제