2010-07-31 5 views
1

클라이언트 시간대 오프셋을 결정하는 할당 작업 중이며, 클라이언트 영역에 대한 시간대 식별자를 가져 오는 코드가 포함 된 PHP 스크립트에 전달합니다.PHP 페이지 문제에 대한 AJAX 호출 사용

지금은 시간대 오프셋을 확인하기 위해 JavaScript를 사용했습니다. 그러나 이것을 PHP로 전달하는 방법이 필요합니다. 나는 AJAX 호출을 사용했다.

var url = "index.php"; 
url=url+"?client_timezoneoffset="+offset; 
xmlhttp.open("GET",url,true); 
xmlhttp.send(true); 

이 JavaScript는 index.php의 onload를 호출합니다. 하지만 여전히 $ _GET은 비어 있습니다. 이 구현을 왜곡하고 다른 페이지를 호출했습니다. set_client_timezone.php 놀랍게도, $ _GET에 시간대가 포함되어 있습니다. 나는 $ _SESSION에 그것을 저장했다.

응용 프로그램의 모든 테스트를 수행했을 때 놀랍게도 시간대 변경 사항이 페이지의 두 번째로드에 반영되고있었습니다.

처음으로 내가 http://www.example.com/index.php으로 이동하면 시간대가 UTC로 표시되지만, 다시로드하면 내 시간대 - 아시아/캘커타 당 정확한 시간이 표시됩니다.

너희 중 누구도 나 한테이 역설을 피할 수 있겠 니?

사람이 나에게 동일을 달성하는 표준 방법을 가리킬 수 내 게시물은 어떤을 경멸 만약 내가 처음 그래서 진심으로 사과이 포럼에 게시하도록하겠습니다

을 (내 현재의 구현을 롤백 할 준비가) 이 포럼의 규칙.

환호,
Abhijit.

답변

0

아약스로 시간대를 변경하면 첫 번째 호출에서 index.php를로드하기위한 PHP 서버 측 항목이 이미 완료되었습니다. 그런 다음 index.php가 완료된 후 클라이언트 측/자바 스크립트 코드가 Ajax 요청을 시작하고 세션으로 시간대를 설정하므로 다음 재로드시 서버 측 PHP 물건이 올바른 시간대를 인식합니다.

수정하려면 다른 방법으로 시도해보십시오. PHP에서 시간대를 설정하고 자바 스크립트 코드에 전달하십시오.

+0

감사
Abhijit합니다. 내 PHP 스크립트에 대한 기본 시간대를 설정해야하는 경우에 따라 클라이언트 시간대 오프셋을 결정하기 위해 JavaScript를 사용하고 있습니다. – Abhijit

+0

어떻게 시간대를 결정합니까? php에서도 가능하지 않습니까? 그 외에 내가 생각할 수있는 유일한 해결책은 아약스에 의해 모든 것을로드 (또는 타임 존에 의존)하는 것입니다.따라서 해당 데이터 집합을 표시하는 데 사용되는 표준 시간대를 이미 알고 있는지 확인할 수 있습니다. – enricog

+0

참조 ... http://www.example.com/index.php의 페이지로드시 초당 오프셋을 반환하는 위 JavaScript를 호출합니다. GET을 사용하여 set_client_timezone.php 페이지로 전달합니다. 이 페이지에서 $ _SESSION으로 설정했습니다. – Abhijit

0

나는 위의 제안에 동의합니다. 이 문제를 해결하기 위해 주 콘텐츠 (index.php)를로드 한 후 js 함수를 조작 할 수 있습니다.

setTimeout("yourfunction()",1000);// load function after 1 seconds from the actual loading time 

이 정보는 도움이 될 수 있습니다.

+0

다시 감사드립니다 ...하지만 작동하지 않습니다 ... :( – Abhijit