2011-09-06 4 views
0

이것은 내 문제입니다, 나는 PHP에서 오는 타임 스탬프를 가지고, 서버 시간은 내 시간에서 3 시간 떨어져 있습니다. 나는 3 시간 씩 시간을 상쇄했지만, 오전 2시에 시간 소인의 날짜 부분이 날짜 (일 및 월) 전날을 읽고 오전 3 시까 지 바뀌지 않는다는 것을 빨리 알게되었습니다. 이는 날짜가 중요하며 정확해야하기 때문에 문제입니다. 시간대 변경을 시도했지만 기울이지 않아 작동하지 않는 것 같습니다. 나는 오하이오에 살기 때문에 내가 필요한 시간이고 서버가있는 시간대는 3 시간 남았습니다. 따라서 두 가지 중 하나가 나를 도울 수 있습니다. 시간대 변경은 시간만이 아니고 3h로 하루를 상쇄하거나 상쇄합니다. 현재 코드는 다음과 같습니다.PHP 날짜 오프셋

$timechange = mktime(date("g")+3, date("i"), 0, date("m"), date("d"), date("y")); 

$date = date("D, d M Y g:i",$timechange); 

답변

4
$now = new DateTime('now', new DateTimeZone('America/Ohio')); // whatever your TZ's name happens to be 

$now->setTimeZone('America/ServerTZ'); // reset to your server's TZ 

$datestr = $now->format('D, d M Y g:i'); // get TZ's time as a nice string 

http://php.net/manual/en/function.date-default-timezone-set.php를 참조 - 내부적으로 타임 스탬프가 변경되지 않습니다.

+0

나는 곧이 오류를 반환한다.'치명적인 오류 : 존재하지 않는 클래스를 인스턴스화 할 수 없다 : datetime' – Osman

+0

5.2에 DateTime이 추가되었습니다. –

+0

거기에이 문제가 해결 되었습니까? – Osman

1

직접 시간을 조정하는 대신 미리 시간대를 설정하십시오.

당신은 함수의 출력에 영향을 미치지는 setTimeZone을함으로써