2013-04-01 4 views
2

나는 표준 시간대 설정에 대해 혼란스러워합니다. 나는 PHP로 포럼을 개발하고 있는데, 응답 시간을 표시 할 지 확신 할 수 없다. 다음은 다른 위치의 시간대를 설정하는 방법은 무엇입니까?

한 질문 2013년 4월 1일 오전 10시 (시간대 '아시아/캘커타')에 게시되고, 조건이다. 응답 한 사람의 시간대가 '미국/시카고'(-10.30 시간)이기 때문에 누군가 2013 년 3 월 31 일 오후 11시 30 분에 신속하게 답장을 보냅니다.

제 질문은 다른 위치의 시간대를 관리하는 방법입니다.

위의 예에서 질문을 게시하고 답변을 얻은 사용자에게 표시되는 시간은 얼마입니까?

질문에 답변 한 사용자에게 표시되는 시간은 얼마입니까?

PHP의 시간 함수를 데이터베이스에 시간 레코드를 삽입하는 문자열로 사용하고 있습니다. 이와 시간을 표시 나는 코드 $ 시간보다도

date("d m Y h:m a", strtotime($time)); 

을 사용하는 값은 데이터베이스에서 온다. 이 기능은 PHP에서 기본 시간대를 사용하는 데 사용됩니다

+0

use date_default_timezone_set ('America/Los_Angeles'); –

+0

서버에서 단일 표준 시간대 (예 : UTC)를 사용하고 클라이언트에서 'Date.getTimezoneOffset()'을 사용하여 클라이언트의 오프셋을 결정하고 해당 오프셋에 따라 출력 관련 시간을 출력 할 수 있습니다. – Passerby

+1

어디에서'$ time'을 얻을 수 있습니까? 사용자가 보낸 경우에는하지 마십시오. –

답변

3

내가 GMT가 기반을 만들기 위해 gmdate()를 사용하여 데이터베이스에 날짜와 시간을 저장하는 것입니다 :

date_default_timezone_set('Asia/Singapore'); 
$ts = strtotime($date_from_db . ' GMT'); 
$date_on_page = date('Y-m-d H:i:s', $ts); 
: 페이지를 렌더링 할 때

$d = gmdate('Y-m-d H:i:s'); 
// store $d into database 

, 당신은 계정에 사용자의 시간대 환경을

또는 JavaScript가 시간 변환을 처리하도록 할 수 있습니다.

업데이트

또한 데이터베이스의 UNIX 타임 스탬프를 저장할 수

; 개인적으로 DATETIME 열을 갖는 것이 좋습니다. 뭔가를 디버그하려고 할 때 해독하기가 더 쉽기 때문입니다.

+0

+1 참조 점의 필요성을 식별합니다. – Emissary

+0

감사합니다. 매우 유용합니다. 그러나 다른 사용자 위치에 대해 어떻게 시간대를 설정할 수 있습니까? – Sachin

+0

@Sachin GMT로 시간을 보내고 자바 스크립트가 시간대를 처리하게합니다. 귀하의 사용자가 데이터베이스에서 자신의 시간대를 설정할 수 있다면 물론 PHP로도 처리 할 수 ​​있습니다 :) –

0
date_default_timezone_set('America/New_York'); 

감사합니다 ....

여기에 tutorial에 대한 링크입니다.

다음
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru')); 
echo $date->format('Y-m-d H:i:sP') . "\n"; 

$date->setTimezone(new DateTimeZone('Pacific/Chatham')); 
echo $date->format('Y-m-d H:i:sP') . "\n"; 

timezones의 목록입니다

그리고

는 시간대 사용을 변경합니다.

관련 문제