PHP 타임존 설정
PHPPHP 타임존 설정
만약에 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 로 접속해서 확인해 보면 됩니다.
- 일단 윈도우 서버에 접속하세요.
- 우측 하단의 시계 표시를 누르고 날짜 및 시간 설정 변경을 클릭
- 날짜 및 시간 탭에서 표준시간대가 제대로 맞춰져 있는지 확인
- 인터넷 시간 탭에서 설정 변경을 클릭
- 인터넷 시간 서버와 동기화 체크박스를 체크하고 지금 업데이트 버튼 클릭
리눅스 서버
아래 명령어는 우분투 리눅스 기준입니다.
리눅스 서버라면 콘솔에서 아래 명령어로 확인해 보면 됩니다.
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 |