2009년 11월 10일 화요일

PHP.INI 환경에서 date.timezone 관련 Warning

출처 :: http://jsvc.tistory.com/2

date.timezone 에 문제가 있어 검색하던도중 찾은 내용이다....
근데 왜 난 않되는거야 ㅠㅠㅠㅠ

(덧글1)
한참의 삽질끝에 결과는?? 버전업이 되면서 호환성 및 설정값이 맞지 않아서였다 ;;
해결책은?? 5.2.11 버전으로 사용했더니 끝났다 ㅡㅡ;; 뒌장~ ;;;


Windows에 PHP 설치하고 phpinfo() 찍어보면 위와 같은 date 관련 Warning 메시지가 뜹니다.

이때는 php.ini 파일을 열어서 아래와 같이 date.timezone 설정을 해주면 됩니다.

또는 date() 함수를 사용하기 전에 date_default_timezone_set('Asia/Seoul') 함수를
호출하여 timezone을 지정해 주면 됩니다.

php.ini에 설정을 한 이후에 phpinfo()를 실행한 화면입니다.

timezone이 Asia/Seoul로 설정되어 있고, 더이상 Warning 메시지도 뜨지 않습니다.


============(추가1)==========================================================================

http://kr2.php.net/manual/en/function.date-default-timezone-set.php
date_default_timezone_set

(PHP 5 >= 5.2.0)

date_default_timezone_set — Sets the default timezone used by all date/time functions in a script
Description
bool date_default_timezone_set ( string $timezone_identifier )

date_default_timezone_set() sets the default timezone used by all date/time functions.

Note: Since PHP 5.1.0 (when the date/time functions were rewritten), every call to a date/time function will generate a E_NOTICE if the timezone isn't valid, and/or a E_STRICT message if using the system settings or the TZ environment variable.

Instead of using this function to set the default timezone in your script, you can also use the INI setting date.timezone to set the default timezone.


인자값으로 timezone 식별자를 넣으면 해당 지역으로 timezone이 세팅됩니다.

timezone 식별자는

Africa
America
Antarctica
Arctic
Asia
Atlantic
Australia
Europe
Indian
Pacific
Others

다음과 같은 지역들이 있으며

서울의 경우는

AsiaAsia/Aden    Asia/Almaty    Asia/Amman    Asia/Anadyr    Asia/Aqtau
Asia/Aqtobe    Asia/Ashgabat    Asia/Ashkhabad    Asia/Baghdad    Asia/Bahrain
Asia/Baku    Asia/Bangkok    Asia/Beirut    Asia/Bishkek    Asia/Brunei
Asia/Calcutta    Asia/Choibalsan    Asia/Chongqing    Asia/Chungking    Asia/Colombo
Asia/Dacca    Asia/Damascus    Asia/Dhaka    Asia/Dili    Asia/Dubai
Asia/Dushanbe    Asia/Gaza    Asia/Harbin    Asia/Ho_Chi_Minh    Asia/Hong_Kong
Asia/Hovd    Asia/Irkutsk    Asia/Istanbul    Asia/Jakarta    Asia/Jayapura
Asia/Jerusalem    Asia/Kabul    Asia/Kamchatka    Asia/Karachi    Asia/Kashgar
Asia/Kathmandu    Asia/Katmandu    Asia/Kolkata    Asia/Krasnoyarsk    Asia/Kuala_Lumpur
Asia/Kuching    Asia/Kuwait    Asia/Macao    Asia/Macau    Asia/Magadan
Asia/Makassar    Asia/Manila    Asia/Muscat    Asia/Nicosia    Asia/Novosibirsk
Asia/Omsk    Asia/Oral    Asia/Phnom_Penh    Asia/Pontianak    Asia/Pyongyang
Asia/Qatar    Asia/Qyzylorda    Asia/Rangoon    Asia/Riyadh    Asia/Saigon
Asia/Sakhalin    Asia/Samarkand    Asia/Seoul    Asia/Shanghai    Asia/Singapore
Asia/Taipei    Asia/Tashkent    Asia/Tbilisi    Asia/Tehran    Asia/Tel_Aviv
Asia/Thimbu    Asia/Thimphu    Asia/Tokyo    Asia/Ujung_Pandang    Asia/Ulaanbaatar
Asia/Ulan_Bator    Asia/Urumqi    Asia/Vientiane    Asia/Vladivostok    Asia/Yakutsk
Asia/Yekaterinburg    Asia/Yerevan              

아시아에서 Asia/Seoul 식별자가 존재합니다.
따라서

date_default_timezone_set('Asia/Seoul')

요렇게 페이지의 상단에 설정해주시면

해당 페이지에서의 time/date관련함수는 서울로 timezone이 세팅되어 모두 이 설정에 영향을 받게 됩니다.

댓글 없음:

댓글 쓰기