2014-04-22 2 views
0

"영국/런던"과 같은 시간대 문자열을 받아들이는 PHP에는 date_default_timezone_set() 함수가 있습니다. 그러나 불행히도 나는 사용자의 GMT 오프셋만을 가지고있다.PHP는 GMT 오프셋을 기준으로 현재 로컬 시간을 얻습니다.

내가 GMT +5에 있고 GMT +5를 기준으로 현재 시간을 얻고 싶다고 가정 해 봅시다. 나는 google에 많은 검색을했지만 도움이되지 않았다.

내가

$current_date = date("Y M D H:S, "GMT +5"); 

처럼 뭔가를 찾고 있어요 시간대 문자열을하지 않아도 때문에 완전히 쓸모 즉,

+1

가능한 중복 [내가 PHP에서 그리니치 시간을 어떻게합니까?] (http://stackoverflow.com/questions/851574/how-do-i-get-greenwich-mean-time-in-php) – NorthBridge

+1

No no no no, please –

+0

@NorthBridge, 오프셋이 이상합니다. $ offset = 4 * 60 * 60 같은 오프셋을 원한다. –

답변

2

에만 독점적으로 GMT 지금 에 대한 상쇄 사용할 수 있습니다 도와주세요 사용자가 GMT를 반년 전에 상쇄했다고 말하면 현재 자신의 위치에있는 시간을 알고 싶습니다. 그것은 기본적으로 몇 시간 범위 내에있는 모든 것일 수 있습니다. 몇 분 전 오프셋이 있어도 DST 변경을 정확하게 수행 한 경우 계산할 때까지 이미 다를 수 있습니다.

그렇다고해서 형식화 된 시간에서 오프셋 시간을 더하거나 뺄 것입니다. 실제로 할 수있는 유일한 작업입니다.

$offset = 5; 
$hours = (gmdate('H') + $offset) % 24; 

echo $hours . gmdate(':i:s Y m d'); 

그건 그냥 예입니다. 분 오프셋도 처리해야합니다.

+0

방금 ​​너무 복잡한 답변을 게시했습니다 –

+2

무엇을 의미합니까? 더 간단한 기능을 원하십니까? 너 내가 쓴 걸 이해하지 못하니? – deceze

+0

@decceze, 다음 답을 참조하십시오. :디 –

1
date_default_timezone_set('GMT'); 
$curTime = strtotime("+5 hours"); 
$current_date = date("Y M D H:S, $curTime); 
  1. 설정 GMT 시간대는 첫 번째 또는 GMT 오프셋을 얻을.
  2. GET 타임 스탬프
  3. 타임 스탬프 날짜
관련 문제