2012-11-28 3 views
0

사용자가 "11/28/2012 11:34 am"형식으로 datetime을 입력하는 모드에서 작업합니다.시간대 오프셋 문제

저는 strtotime을 사용하여이를 타임 스탬프로 변환하고 데이터베이스에 저장합니다.

다음 날짜 (DateTime, 'D M jS g : i A')를 사용하여 템플릿에 사용자에게 표시하고 있습니다.

문제는 이벤트를 만든 사용자와 동일한 시간대에 있지 않은 사용자가 시간대를 반영하여 올바른 시간을 업데이트하지 못하는 문제입니다.

사용자 게시와 사용자보기의 시간대 오프셋에 액세스 할 수 있습니다.

내 질문은 어떻게 시간대 차이를 보상해야합니까? 실제 시간대 사용할 문자열로 변환하면

+4

무엇이 질문입니까? – Madbreaks

+1

변환하기 전에 GMT 오프셋을 사용하십시오. 예 : "11/28/2012 11:34 am +2 GMT" –

+0

EL, DB에 저장할 때 또는 사용자에게 표시 할 때 +2 GMT를 어디에서 얻습니까? –

답변

1

이 값을 제출하는 사용자의 시간대와 서버 시간대를 무시한다 : http://us3.php.net/manual/en/function.date-default-timezone-set.php

나중에 검색 할 때, 전류 서버 시간대를 무시할 동일한 함수를 사용하여 사용자의 것 (그 순간에 datetime을 표시하는 사용자에게 적합한 것).

PHP에서 유닉스 타임 스탬프, 데이터베이스 내의 TIMESTAMP 열, 데이터베이스에 저장할 때 FROM_UNIXTIME() 데이터베이스 함수, 데이터베이스에서 검색 할 때 UNIX_TIMESTAMP()를 사용하는 것이 좋습니다. MySql RDBMS, 다른 경우 자체 DBMS를 확인하십시오).

+0

명명 된 시간대가 아닌 오프셋에만 액세스 할 수 있다는 점만 제외하면 작동 할 수도 있습니다. –

+0

@ResidualEnvy : 제대로 완료되면 작동합니다. "기타"섹션의 사용 가능한 시간대 식별자 목록에서 "기타"로 시작하는 이름이있는 시간대를 확인하십시오. http://us3.php.net/manual/en/timezones.others.php – Tadeck

+0

잘 작동합니다. 많은. –