2013-08-23 3 views
1

어떤 이유로 date() 함수가 시간대 조정 날짜/시간을 출력하지 않습니다. 이것을 디버깅 할 때 이상한 차이를 발견했습니다. 내 시간대는 php.ini으로 정의되어 있으며 America/New_York입니다. 나는이를 호출 할 때 :php.ini의 PHP 시간대가 적용되지 않습니다.

echo ini_get('date.timezone');

는 내가 기대되는, America/New_York를 얻을. 그러나, 나는이를 호출 할 때 :

echo date_default_timezone_get();

내가 UTC를 얻을. 이것은 UTC 시간대로 시간을 반환하는 date() 메서드를 담당합니다. 왜 이런 일이 일어나는 걸까요? php.ini에있는 시간대를 PHP에서 존중하도록하려면 어떻게합니까? 내가 궁극적으로 단지 date('Y-m-d G:i:s')에서 시간대 조정 시간을 얻기 위해 노력하고

UPDATE. php.ini에서 내 시간대가 설정되었으므로 date()에서 정확한 날짜/시간을 얻으려면 어떻게해야합니까?

+0

존중? 문제의 함수에 대한 설명서에 따르면 - ['date_default_timezone_get()'] (http://php.net/date_default_timezone_get) - ini 설정 사이에 확실한 1 : 1 관계가 없으며, 오직 사용 된 경우에만 - 그 사이의'date_default_timezone_set()'(설정 상대). 그럼 여기서 뭘 물어 보는거야? 그냥? – hakre

+0

나는'''date ('Y-m-d G : i : s')를 호출 할 때주의 할 것입니다.''나는 시간대 조정 날짜/시간을 원합니다. – sebolith

+0

예, 정확히 당신을 이해하는 방법입니다. 그것이 지금 당신을 위해 작동한다면 아마도 시도해야합니다. – hakre

답변

0

의 의미를 이해하면이 맞는지 궁금한데 date_default_timezone_get()이 ini 설정을 반환하지 않는 것입니다. 이 가져 오기 작업 전에 라인을 호출하여 그것을 변경할 수 있습니다

date_default_timezone_set(ini_get('date.timezone')); 

뿐만 아니라 예 2 커버 매뉴얼에서 시간대의 약어를 얻기를 참조하십시오를 그 :

<?php 
date_default_timezone_set('America/Los_Angeles'); 
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T'); 

위에게 예 : 출력 :

America/Los_Angeles => America/Los_Angeles => PST 
+0

감사합니다. 그러나 사실 저는'''date_default_timezone_get()'''그 자체로는 신경 쓰지 않습니다. 나는'''date ('Ymd G : i : s') '''나는 시간대 조정 날짜/시간. – sebolith

+0

글쎄, 당신은'date()'에 관심이있다. 그래서'date()'가 어떻게 영향을 미치는지 보여주는 예제를 답안에 추가했습니다. 너는 내가 왜 그런 식으로 코멘트하는지 이해하지 못한다. 이 질문에 여전히 답하지 않으면 알려주세요. – hakre

관련 문제