2013-03-22 2 views
0

date()은 현지 시간/날짜 형식이고 gmdate() 형식은 GMT/UTC 날짜/시간 형식인데 왜 이것이 사실입니까? 명령 줄에서로컬 타임 스탬프가 UTC 타임 스탬프와 같은 이유는 무엇입니까?

date_default_timezone_set('America/Los_Angeles'); 
var_dump(date('U') === gmdate('U')); // true 

:

$ php -r "date_default_timezone_set('America/Los_Angeles'); var_dump(date('U') === gmdate('U'));" 
bool(true) 

왜 다른 시간대에 대한 UTC 타임 스탬프와 동일한 로컬 타임 스탬프?

+1

타임 스탬프는 UTC 항상 있습니다. 형식이 지정된 날짜는 표준 시간대 설정에 따라 지역화됩니다. – mario

답변

4

타임 스탬프는 Unix Epoch (1970 년 1 월 1 일 00:00:00 GMT) 이후 초입니다. 그리니치 표준시 통지? 현재 시간대가 무엇이든, 시간 소인은 해당 시간 및 시간대와 관련됩니다.

은 당신이 정말로 원하는 것은 :

$local = new DateTime(); 
$local->setTimeZone(new DateTimeZone('America/Los_Angeles')); 
$gmt = new DateTime(); 
$gmt->setTimeZone(new DateTimeZone('UTC')); 
var_dump($local === $gmt); 
+0

$ gmt-> setTimeZone (새 DateTimeZone ('UTC'))을 의미 했습니까? ? – SoTes

+0

예. 잡으러 와줘서 고마워. –

+0

도움을 주셔서 감사합니다! 이유는'gmtime()'이 없다는 것입니다. – SoTes

관련 문제