가입 양식에서 사용자 시간대를 감지하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/768007

  •  12-09-2019
  •  | 
  •  

문제

시간대는 수십 개의 옵션 중에서 선택하기가 어려울 수 있습니다. 이 과정을 더 간단하게 만들고 싶습니다. 나는 최선의 추측을 할 수있는 야생에서 어떤 형태를 보았습니다. 나는 해결책을 위해 고글 링했지만 운이 좋지 않았다. 누구든지 어떻게 해야하는지 아이디어가 있습니까?

도움이 되었습니까?

해결책

자바 스크립트 :

var today = new Date();

alert( today.getTimezoneOffset() );

이것은 오프셋 (GMT-X)을 제공하지만 실제 시간대 이름은 아닙니다. 동일한 GMT 오프셋이 여러 타임 존과 일치 할 수 있으며 일광 절약을 고려해야합니다. 그러나 이것은 아마도 시작하기 가장 쉬운 곳 일 것입니다. 사용자가 드롭 다운에서 시간대를 선택하는 데 부족합니다.

다른 팁

IP 주소를 일련의 목록과 일치시켜 사용자 국가를 감지 할 수 있습니다. 이를 달성하는 방법에는 여러 가지가 있지만 최고는 사용하는 것입니다. 이 API.

사용의 예는 다음과 같습니다. http://nl.ae/iptocapi.php?type=1&ip=00.00.00.00. 이것은 해당 IP 주소의 국가 코드를 반환합니다. 그런 다음 국가 코드를 시간대와 일치시키는 것은 매우 쉽습니다.

시간대를 찾은 후에는 드롭 다운 상자에서 기본값으로 사용할 수 있습니다.

여기에서 훨씬 더 좋고 강력한 솔루션을 찾았습니다. http://www.onlineaspect.com/2007/06/08/auto-detect-aime-zone-with-javaScript/.

저자가 설명 하듯이 Date.getTimezoneOffset() 일관성이 없습니다.

당신이 사용할 수있는 자바 스크립트 보다 안정적으로 안정적으로 시간대 오프셋을 결정합니다. 내가 아는 한, HTTP는 서버에서 클라이언트 시간대를 결정할 수있는 수단을 제공하지 않습니다.

JavaScript 사용 :

<input type="hidden" id="visitorTZ" name="visitorTZ" />
<script type="text/javascript">
    d = new Date();
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top