2009-11-09 2 views
0

사용자의 로캘에 따라 표준 시간대 코드 (예 : BST 또는 GMT)를 표시하려고합니다. 그러나 각 브라우저에서 새로운 Date(). toLocaleString()과 다른 브라우저 (Opera와 같은)에서는 전혀 사용할 수 없습니다.BST/GMT/CET 등의 시간대 코드는 어떻게 받습니까?

시간대 오프셋에 대해 데이터베이스 또는 시간대 코드 구조를 얻는 것이 해결책 인 것처럼 보이지만 여러 일치 (예 : BST == GMT)가있을 수 있으며 이러한 목록을 찾을 수조차 없습니다.

이 작업을 수행 할 수 없다는 의미입니까?

답변

1

코드에서 표준 시간대 차이를 수동으로 정의해야합니다. GMT 시간이 UTC (Zulu) 시간과 다르기 때문에 복잡합니다. GMT에는 일광 절약 시간에 대한 변경 사항이 포함되어 있으며 UTC에는 일광 절약 시간제가 적용되지 않으며 그렇지 않은 경우 동일한 시간대 표시가 적용됩니다.

모든 정치 구역이 예제 시간 수에 따라 달라지는 시간대를 정의하지는 않습니다. 인도는 UTC + 5.5 시간, 아프가니스탄 UTC + 4.5 시간. 해당 국가는 일광 절약제를 준수하지 않으므로 GMT가 기본이 아니라는 것을 알 수 있습니다. 남서 태평양의 일부 작은 섬 국가들은 분기 시간에 따라 달라질 수 있습니다.

일부 정치 시간대 정의에는 내부 차별이 있습니다. 애리조나는 일반적으로 일광 절약 시간제를 준수하지 않는다는 것을 제외하고는 미국 태평양 표준 시간대 인 GMT - 8 시간으로 간주되므로 애리조나는 실제로 UTC-8 인 미국 산악 표준 시간대의 반입니다.

모두 포함 그 혼란에는 시간대에 대한 수백 가지 정의가 있으며, 정치적 경계가 바뀌면서 그러한 변화의 일부가 바뀝니다. 나는 단지 그것을 말하고 사용자의 시계 시간을 사용하거나 사용자가 페이지를 요청했을 때 UTC 시간을 나타내는 알려진 값을 반영하도록 서버에서 JavaScript의 상수를 동적으로 조정하여 UTC 시간을 조정합니다.

+0

GMT에 대한 의견이 잘못되었습니다 (GMT에는 DST가 없음). 자세한 내용은 http://en.wikipedia.org/wiki/GMT를 참조하십시오. 다른 정보는 유용합니다. – fvu

+0

그래서 본질적으로 당신은 그것의 외관에 의해 어느 쪽이든 할 수 없다는 것에 동의합니다. – Philluminati

관련 문제