2009-04-20 5 views
8

수십 가지 옵션 중에서 표준 시간대를 선택하기가 어려울 수 있습니다. 나는이 과정을 더 간단하게하고 싶다. 최고의 추측을 할 수있는 몇 가지 양식을 야생에서 보았습니다. 나는 솔루션을 고글로 쓰지만 행운을 빕니다. 어떤 사람이 그것을하는 방법을 알고 있습니까?가입 양식에 사용자 시간대를 감지하는 방법은 무엇입니까?

답변

10

자바 스크립트 :

var today = new Date(); 

alert(today.getTimezoneOffset()); 

이 오프셋 (GMT-X)를 제공,하지만 실제 시간대 이름 것입니다. 동일한 GMT 오프셋이 여러 시간대와 일치 할 수 있으며 일광 절약 시간도 고려해야합니다. 그러나 이것은 사용자가 드롭 다운에서 자신의 시간대를 선택하도록하는 것보다 쉽습니다.

+1

내가 주목하고 싶은 것은'getTimezoneOffset()'은 GMT가 사용자의 시간대로부터의 오프셋이 오프셋되어 있고, 다른 방향으로는 오프셋되어 있지 않은 것입니다. 즉 EST가 GMT-05 : 00이고 GMT + 05 : 00이 아닌 경우 북미 동부 표준시 인 '(new Date()). getTimezoneOffset()/60'은 '5'를 반환합니다. – gabriel

1

JavaScript을 사용하면 다소 시간대 오프셋을 안정적으로 결정할 수 있습니다. 내 지식으로는 HTTP가 서버의 클라이언트 시간대를 확인하는 수단을 제공하지 않습니다.

1

를 사용하여 자바 스크립트 :

<input type="hidden" id="visitorTZ" name="visitorTZ" /> 
<script type="text/javascript"> 
    d = new Date(); 
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script> 
2

당신은 일련의 목록에 자신의 IP 주소를 일치시켜 사용자 국가를 검색을 시도 할 수 있습니다. 이를 달성하는 방법은 여러 가지가 있지만 this API을 사용하는 것이 가장 좋습니다.

사용 예는 http://nl.ae/iptocapi.php?type=1&ip=00.00.00.00입니다. 그러면 해당 IP 주소의 국가 코드가 반환됩니다. 그런 다음 국가 코드와 시간대를 쉽게 일치시킬 수 있습니다.

이렇게하면 시간대를이 드롭 다운 상자의 기본값으로 사용할 수 있습니다.

+4

이것은 작동하지 않습니다. * 많은 * 국가는 하나 이상의 시간대를 구성합니다. – Turtle

+0

되돌아 보면 정말 좋은 생각이 아니 었습니다. – Sam152