문제

우리의 사람들을 위해 사용하는 표준 shared 호스팅 패키지와 같은 고 대디 또는 네트워크 솔루션을 처리하는 방법 datetime 변환할 때 호스팅 서버는(PHP)와 MySQL 서버는 다른 시간대에?

또한,을 가지고 있지 않지만 몇 가지 모범 사례에 대한 조언을 결정 시간대에 방문자의 사이트에서와 조작 날짜/시간 변수를 적절하게?

도움이 되었습니까?

해결책

로 PHP5.1.0 사용할 수 있는 date_default_timezone_set() 기능을 설정하는 기본 표준 시간대에 의해 사용되는 모든 날짜/시간 함수에서 스크립트입니다.

MySql(에서 인용 MySQL 서버 시간대의 지원 페이지)

전 MySQL4.1.3,서버에서만 작동합 시스템 설정된 시간대에서 시작합니다.을 시작으로 MySQL4.1.3,서버지는 여러 시간대 설정의 일부 수정할 수 있습니다.

의 관심을 당신은 연결 설정 시간대를 사용할 수 있는 시작 시 스크립트

SET timezone = 'Europe/London';

으로 검출하는 클라이언트의 시간대 설정을 사용할 수 있습니트의 자바스크립트를 얻을 저장하는 정보를 쿠키에 사용하고,그 이후에 페이지를 읽을 계산하고,적절한 시간대.

//Returns the offset (time difference) between Greenwich Mean Time (GMT) 
//and local time of Date object, in minutes.
var offset = new Date().getTimezoneOffset(); 
document.cookie = 'timezoneOffset=' + escape(offset);

또는 당신을 제공할 수 있는 사용자에게 chioce 을 설정하는 자신의 시간 영역 자체.

다른 팁

모든 저장으로 UTC.당신이 할 수 있는 변환 클라이언트 수준에서,또는 서버 측에서 사용하여 클라이언트 설정합니다.

php-날짜

mysql-utc-timestamp

다시 대답에서 Željko Živković,시간대 설명자'와 같은 유럽/런던'는 경우에만 작동 mySQL 관리자가 추가되는 시간대 테이블 시스템,그리고 그들을 계속 업데이트됩니다.

그렇지 않으면 당신은 제한을 숫자로 오프셋을 다음과 같'-4:00'.다행히도 php date('P')형식으로 제공합니다(5.1.3)

그래서에서 말하는 앱 config 파일에 있는

define('TZ', 'US/Pacific');
....
if (defined('TZ') && function_exists('date_default_timezone_set')) {
    date_default_timezone_set(TZ);
    $mdb2->exec("SET SESSION time_zone = " . $mdb2->quote(date('P')));
}

이 PHP and mySQL 것에 동의 것 시간대 오프셋을 사용합니다.

항상 사용하여 저장하기 위한 타임스탬프 시간 값.열은 실제로 저장되어 있으로 UNIX_TIME(epoch)만으로부터 현재 time_zone 오프셋이 기록될 때,그 때에 다시 읽습니다.

를 표시하려면 시간을 사용자가 다른 시간대에,대신 다음의 글로벌 정의(),들이 주어진 시간대에습니다.타임 스탬프 값이 자동으로 변환하여 mySQL 에 의해 시간은 당신의 응용을 본 결과는 세트(는 때로 문제가 될 수 있습,필요한 경우 실제로 원본을 모른 시간대의 이벤트는 너무 그런 다음 필요에 다른 열)

그리고"왜 그냥 모든 배 int s",그는 잃은 당신의 능력을 비교하고 검증날짜,그리고 의미할 변환해야하는 날짜 표현 앱 수준에서(그리고 눈에 단단하고자 하는 때에는 직접 데이터를 빠르고,에서 무슨 일이 일어났 1254369600?)

저장 날짜로 bigint 으로 인해하는 데 문제가 있었 dateTime 입력하기 전에.저장 결과의()PHP 기능으로 그것은 지금,그들은 계산에 있는 것으로 동 시간대:)

Php 에서 설정 시간대에 의해 php.ini file: ini_set("date.timezone", "America/Los_Angeles");

또는에서 특정 페이지 당신이 할 수 있는 다음과 같: date_default_timezone_set("America/Los_Angeles");

Mysql 에서 당신이 할 수 있는 다음과 같: SET GLOBAL time_zone = 'America/Los_Angeles';

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top