2011-11-22 3 views
0

로깅 목적으로 date() 함수를 사용하는 스크립트를 작성하고 있습니다.PHP는 일부 사이트 방문자에게 날짜 오류를 표시합니다.

나는 여러 곳에서 date('Y-m-d'), date('Y-m-d H-i-s')date(DATE_RFC822)을 사용합니다.

내 컴퓨터에서 Mac OS 10.6의 Safari, Firefox 및 Chrome을 사용하여 페이지에 액세스하면 페이지가 예상대로로드되고 오류가 발생하지 않습니다. (같은 일반적인 지리적 영역과 나 같은 시간대에) 동료가 같은 OS와 브라우저를 사용하여, 그녀의 컴퓨터에서 자신을 페이지에 액세스

, 그녀는 모든 브라우저에서 다음과 같은 오류를 수신 :

date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead

나는 날짜() 기능은 클라이언트의 시간대에 무관하다고 가정했다, 그러나 이것은 다른 제안 할 것으로 보인다.

date_default_timezone_set("America/New_York"); 을 통해 시간대를 지정하여 문제를 해결했지만 클라이언트가 서버의 시간대와 관계가있는 이유를 알고 싶습니다.

() 함수와 관련하여 클라이언트의 시간대가 PHP의 시간대 처리에 어떻게 영향을 미치나요?

PHP 버전 :은 phpinfo에서 5.2.5

상세 정보() :

date/time support enabled 
"Olson" Timezone Database Version 2007.9 
Timezone Database internal 
Default timezone US/Eastern` 
+0

사용자 시간대와 관련이 없으며 PHP는 서버 측이며 서버 날짜가 표시됩니다. –

+0

@ 대고 나는 그 목적이 서버의 날짜/시간을 보여주는 것이라고 이해한다. 하지만 date() 함수를 호출하면 한 컴퓨터에서만 오류가 발생하지만 다른 컴퓨터에서는 오류가 발생한다는 사실을 어떻게 설명 할 수 있습니까? – atroberts20

+0

코드에서 ini_set ('display_errors', VAL)'을 사용하고 있습니까? 아마도 사용자 에이전트에 조건부일까요? – Shad

답변

0

불가능합니다. 일부 사용자 에이전트 종속 영역의 코드에 오류가있을 수 있지만 코드에 영향을 줄 수있는 사용자 브라우저, OS 또는 컴퓨터에 대한 정보는 없습니다. ,

0

PHP의 오류 /주의 사항 (당신이 outputbuffering을 사용하지 않는 경우) 즉시가 트리거로 밖으로 에코됩니다, 그래서 가능 귀하의 브라우저가 <html> 태그 외부 오류/통지를 발견을, 그리고 그렇게 폐기 친구의 브라우저는 아마도 DOM에 다시 통합했을 것입니다 ~ ~

1

의견을 보내 주셔서 감사합니다.

사실 웹 서버가 두 개의 서버 노드에 분산되어 있기 때문입니다. 한 노드가 PHP 5.2.5를 실행 중이며 다른 노드가 5.1.6을 실행 중입니다. 필자는 PHP 5.2.5 노드가 페이지에 액세스 할 때마다 서비스를 제공 받았고 다른 사람은 PHP의 이전 버전이있는 노드에서 서비스를 제공 받고있었습니다. 그래서 비록 우리가 똑같은 URL에 접근하고 있었지만, 우리는 사실상 다른 웹 서버에 의해 제공되고있었습니다. 아주 나쁜 상황.

물론 솔루션은 노드를 서로 동일하게 만드는 것입니다. 다들 말했듯이 클라이언트가 date() 함수에 영향을 줄 수있는 방법은 없습니다.

관련 문제