사용자 시간대 가져 오기 [중복]
PHP사용자 시간대 가져 오기 [중복]
이 작업을 수행하는 가장 좋은 방법은 무엇입니까? PHP 또는 javascript.Can 누군가가 일부 발췌 문장을 제공 할 수 있습니까? 감사.
해결법
-
==============================
1.이렇게하면 PHP 변수로 시간대가 표시됩니다. jQuery와 PHP를 사용하여 함수를 작성했습니다. 이 테스트를 거쳐 작동합니다!
이렇게하면 PHP 변수로 시간대가 표시됩니다. jQuery와 PHP를 사용하여 함수를 작성했습니다. 이 테스트를 거쳐 작동합니다!
시간대를 변수로 사용하려는 PHP 페이지에서 다음 코드 스 니펫을 페이지 상단 근처에 놓습니다.
<?php session_start(); $timezone = $_SESSION['time']; ?>
이것은 세션 변수 "time"을 읽습니다. 우리는 지금 만들려고합니다.
동일한 페이지의
섹션에서 우선 jQuery를 포함해야합니다.<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
또한
섹션에서이 jQuery를 붙여 넣습니다.<script type="text/javascript"> $(document).ready(function() { if("<?php echo $timezone; ?>".length==0){ var visitortime = new Date(); var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60; $.ajax({ type: "GET", url: "http://domain.com/timezone.php", data: 'time='+ visitortimezone, success: function(){ location.reload(); } }); } }); </script>
너는 눈치 챘을 수도 모르지만, 너는 너의 실제 도메인으로 URL을 바꿀 필요가있다.
마지막 한가지. 당신은 아마 도대체 timezone.php가 무엇인지 궁금 할 것입니다. 음, 간단히 말해서 : (timezone.php라는 새로운 파일을 만들고 위의 URL로 가리 키십시오)
<?php session_start(); $_SESSION['time'] = $_GET['time']; ?>
올바르게 작동하면 먼저 페이지를로드하고 JavaScript를 실행 한 다음 페이지를 다시로드합니다. 그러면 $ timezone 변수를 읽고 즐겁게 사용할 수 있습니다! 현재 UTC / GMT 시간대 오프셋 (GMT -7) 또는 현재 시간대를 반환합니다.
이 블로그에 대한 자세한 내용은 내 블로그에서 읽을 수 있습니다.
건배
Westy92>
-
==============================
2.서버 측에서는 JavaScript만큼 정확한 것은 아닙니다. 한편 때로는 그러한 과제를 해결해야합니다. 이 경우 가능한 해결책을 공유하기 위해이 답변을 씁니다.
서버 측에서는 JavaScript만큼 정확한 것은 아닙니다. 한편 때로는 그러한 과제를 해결해야합니다. 이 경우 가능한 해결책을 공유하기 위해이 답변을 씁니다.
사용자의 시간대를 결정해야 할 경우 Geo-IP 서비스를 통해 수행 할 수 있습니다. 그들 중 일부는 시간대를 제공합니다. 예를 들어,이 파일 (http://smart-ip.net/geoip-api)은 다음과 같은 도움을 줄 수 있습니다.
<?php $ip = $_SERVER['REMOTE_ADDR']; // means we got user's IP address $json = file_get_contents( 'http://smart-ip.net/geoip-json/' . $ip); // this one service we gonna use to obtain timezone by IP // maybe it's good to add some checks (if/else you've got an answer and if json could be decoded, etc.) $ipData = json_decode( $json, true); if ($ipData['timezone']) { $tz = new DateTimeZone( $ipData['timezone']); $now = new DateTime( 'now', $tz); // DateTime object corellated to user's timezone } else { // we can't determine a timezone - do something else... }
-
==============================
3.Oded가 대답 한 것처럼. 자바 스크립트에서 이러한 종류의 탐지 기능이 필요합니다.
Oded가 대답 한 것처럼. 자바 스크립트에서 이러한 종류의 탐지 기능이 필요합니다.
나는 이것으로 자신과 싸우고 오프셋이 충분하지 않다는 것을 깨달았다. 예를 들어 일광 절약 시간에 대한 정보는 제공하지 않습니다. 나는 zoneinfo 데이터베이스 키에 맵핑 할 코드를 작성했다.
1 년에 여러 날짜를 확인하면 더 정확하게 시간대를 결정할 수 있습니다.
여기에 스크립트를보십시오 : http://jsfiddle.net/pellepim/CsNcf/
시스템 시간대를 변경하고 실행을 클릭하여 테스트하십시오. 크롬을 실행하는 경우 새 탭에서 각 테스트를 수행해야합니다 (시간대 변경을 시작하기 위해 다시 시작해야 함).
코드 체크 아웃에 대한 자세한 내용은 https://bitbucket.org/pellepim/jstimezonedetect/에서 확인하십시오.
from https://stackoverflow.com/questions/4746249/get-user-timezone by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
가장 좋은 방법은 mysql 데이터베이스에 중복 항목을 피하기 위해 (0) | 2018.09.12 |
---|---|
PHP 사이트에 대한 브라우저 캐시를 방지하는 방법 (0) | 2018.09.12 |
PHP에서 mod_rewrite가 활성화되었는지 확인하는 방법은 무엇입니까? (0) | 2018.09.12 |
php serialize () 및 unserialize ()를 사용하는 방법 (0) | 2018.09.12 |
PHP에서 URL로부터 도메인 구문 분석하기 (0) | 2018.09.12 |