2012-02-23 3 views
1

SQL 데이터베이스에서 검색 한 PHP 페이지에서 시간 목록을 얻었습니다.고정 (MySQL) 시간을 클라이언트의 시간으로 변환했습니다.

내가 원하는 것은 클라이언트가 세계 어디에 있든간에 클라이언트와 서버의 시간 사이의 오프셋에 따라 시간을 변경해야한다는 것입니다.

세계의 고객 위치는 그가 본 시간에 영향을 미칩니다.

+0

예를 들어주세요. – dynamic

답변

0

시간대를 사용자의 시간대로 표시하려면 시간대가 어느 시간대인지 알고 있어야합니다. 예를 들어 옵션/환경 설정을 통해 설정합니다.

시간은 종종 "현지 시간"이라고합니다.

그런 다음 데이터베이스에 값을 저장 한 시간대를 알아야합니다. UTC가 종종 선택되며, 그 다음에 "zulu time"이 선택됩니다.

데이터베이스 (zulu)에서 시간을 검색 할 때 사용자 환경 설정 (로컬)에 따라 시간대를 변환합니다. 그리고 그게 다야.

0
  1. 를 사용하여 자신의 IP (geoip_record_by_name() 다음 geoip_time_zone_by_country_and_region())와 클라이언트 시간대를 식별하는 지오 IP 모듈을 참조하십시오.
  2. date_default_timezone_set()을 사용하여 PHP 스크립트의 시간대를 설정하십시오. date 함수가 정확한 시간대로 변환하도록 만들지 만, MySQL의 경우 UNIX TIMESTAMP로 날짜를 가져와야합니다 (이것은 SELECT UNIX_TIMESTAMP(date) FROM table으로 쉽게 수행됩니다).
  3. 선택적으로 MySQL의 TIMESTAMP 유형을 살펴보고 변환을 수행하도록 알려줄 수 있습니다 (쿼리하기 전에 SET time_zone = [timezone] 실행). 그래도 서버 구성이 필요합니다.
관련 문제