복붙노트

PHP 타임존 설정

PHP

PHP 타임존 설정

만약에 PHP에서 날짜 관련 함수를 설정했는데 시간대가 영 이상하게 나오면 체크해 볼 것은 아래와 같습니다.

웹 호스팅을 받는 분들은 I.서버 시간, II.php.ini 는 해당이 없으므로 넘어가시고 III.PHP에서 세팅하기 부분을 보시면 됩니다.

혹시

Warning: date(): It is not safe to rely on the system's timezone settings.  
You are *required* to use the date.  
timezone setting 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 'Asia/Seoul' for 'KST/9.0/no DST' instead in (**.php)  

이런식으로 나온다면 II.php.ini 를 확인해 주세요.
php.ini 에 타임존이 세팅이 안되어 있는 것입니다.

I. 서버 시간

서버 시계가 틀릴 수도 있습니다.
참고로 대한민국의 타임존은 UTC+9 입니다.

윈도우 서버

윈도우 서버라면 직접 RDP 로 접속해서 확인해 보면 됩니다.

  1. 일단 윈도우 서버에 접속하세요.
  2. 우측 하단의 시계 표시를 누르고 날짜 및 시간 설정 변경을 클릭
  3. 날짜 및 시간 탭에서 표준시간대가 제대로 맞춰져 있는지 확인
  4. 인터넷 시간 탭에서 설정 변경을 클릭
  5. 인터넷 시간 서버와 동기화 체크박스를 체크하고 지금 업데이트 버튼 클릭

리눅스 서버

아래 명령어는 우분투 리눅스 기준입니다.
리눅스 서버라면 콘솔에서 아래 명령어로 확인해 보면 됩니다.

date '+%F  %r'  

만약 서버 시간이 틀렸다면 우선 타임존을 설정합니다.

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime  

위 명령어는 우분투 기준이며 /usr/share/zoneinfo/Asia/Seoul 을 이 컴퓨터의 로컬 시간으로 쓰겠다는 것입니다.

그리고 시간을 수동으로 변경하려면

date -s '2017-11-13 06:00:00'  

이런 식으로 변경하면 됩니다.

만약 날짜만 바꾸려면

date -s '2017-11-13'  

만약 시간만 바꾸려면

date -s '06:00:00'  

II. php.ini 설정 확인해 보기

에디터로 php.ini 파일을 엽니다.

윈도우

xampp 등 올인원 팩 사용

xampp 등 아파치, mysql, php 등이 빌트인되어 있는 소프트웨어를 사용하신다면

C:\xampp\php\php.ini  

에 존재합니다.

IIS 사용

iis 에서는

C:\Windows\php.ini  

에 있습니다.

리눅스

nano /etc/php5/apache2/php.ini  

php5는 php 버전에 따라 다르니 각각 상황에 맞춰서 열어주세요.

수정하기

우선 에디터로

date.timezone  

라는 글자가 있는지 찾아봅니다.

만약에 없거나, 있어도

;date.timezone  

이런식으로 앞에 ; 이 붙어서 주석처리가 되어 있다면 설정이 안되어 있는 것입니다.

요렇게 고쳐 줍시다.

date.timezone = Asia/Seoul  

III.PHP에서 세팅하기

date_default_timezone_set 함수는 날짜 관련 함수를 쓰기 전에만 사용하면 되지만, 여러모로 헷깔리니까 보통 구문이 시작하자 마자 넣어줍니다.

'PHP' 카테고리의 다른 글

PHP 배열 정렬하기  (0) 2017.11.14
PHP 에서 오류 메세지 보기  (0) 2017.11.13
PHP에서 날짜 및 시간 다루기  (0) 2017.11.12
PHP Headers already sent 오류  (0) 2017.11.12
PHP mysql_query 에서 false 를 반환할 경우  (0) 2017.11.11