PHP에서 시간대를 설정해야 하는 이유는 무엇입니까?

青灯夜游
풀어 주다: 2023-03-11 16:36:02
원래의
2423명이 탐색했습니다.

PHP5.0이 data() 함수를 다시 작성했기 때문에 현재 날짜 및 시간 함수는 시스템 시간보다 8시간 적으며 PHP 언어의 기본 설정은 표준 그리니치 시간입니다(즉, 0 시간대가 사용됩니다. ), 따라서 현재 현지 시간을 얻으려면 PHP 언어의 시간대 설정을 변경해야 합니다.

PHP에서 시간대를 설정해야 하는 이유는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

시간은 인생에서 필수적이며 PHP에서도 마찬가지입니다. 무언가를 기록하거나 기록하기 위해 시간을 저장해야 할 때도 있습니다. 브라우저에 표시됩니다.

PHP에서는 날짜 및 시간 함수를 통해 날짜와 시간을 얻습니다. 날짜 및 시간 함수는 서버의 시간 설정에 따라 달라집니다. 서버의 시간 설정은 기본적으로 그리니치 시간(0시간대 시간)으로 설정됩니다. 시간이 특정 시간대로 설정되지 않은 경우 관련 PHP 함수를 통해 얻은 시간은 다음과 같습니다. 0 시간대 시간은 베이징 시간보다 8시간 적습니다.

시간대 구분

세계는 24개의 시간대로 나누어져 있습니다. 각 시간대마다 현지 시간이 동시에 1~23시간씩 다릅니다. , 영국 런던 현지 시간과 베이징 현지 시간 시차는 8시간입니다.

국제 무선 통신 분야에서는 UTC(Universal Time Coordinated)라는 통일된 시간이 사용됩니다. 이는 그리니치 표준시(GMT)와 동일합니다.

PHP의 시간대 설정

PHP5.0의 data() 함수 재작성으로 인해 현재 날짜 및 시간 함수는 시스템 시간보다 8시간 적습니다. PHP 언어의 기본 설정은 표준 그리니치 시간(즉, 0 시간대가 사용됨)이므로 현재 현지 시간을 얻으려면 PHP 언어의 시간대 설정을 변경해야 합니다.

PHP에서 시간대를 설정하는 방법에는 세 가지가 있습니다. 아래에서 각각을 소개하겠습니다.

1) 구성 파일에 설정

PHP의 구성 파일은 PHP 설치 디렉터리에 있는 php.ini 파일을 찾아서 엽니다. 그런 다음 파일에서 date.timezone을 검색하고 date.timezone

;date.timezone =前面的;与 PHP 中的//功能相同,都是注释的意思,这里我们需要将这个;

;date.timezone = 앞의 ;/로 바꾸세요. / PHP에서 는 동일한 기능을 가지며 주석을 의미합니다. 여기서는 이 ;를 제거하고 아래와 같이 이 문장에서 = 뒤에 해당 시간대 식별자를 입력해야 합니다.

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shangha
로그인 후 복사

일반적으로 사용되는 시간대 식별자 및 의미:
  • Asia/Shanghai —— Shanghai
  • Asia/Chongqing —— Chongqing
  • Asia/Urumqi —— Urumqi
  • 아시아/홍콩 — — 홍콩
  • 아시아/마카오 —— 마카오
  • 아시아/타이베이 —— 타이페이
  • 아시아/싱가포르 —— 싱가포르
  • PRC —— 중국 시간대

국내에서는 시간대는 "아시아/상하이 또는 PRC"로 설정할 수 있습니다. 설정이 완료된 후 서버를 다시 시작하는 것을 잊지 마세요!

2) ini_set() 함수를 사용하여 시간대 설정

PHP의 ini_set() 함수는 지정된 구성 옵션의 값을 설정할 수 있습니다. 이 구성 옵션은 스크립트가 실행될 때 새 값을 유지합니다. , 스크립트가 끝나면 복원됩니다. 함수의 구문 형식은 다음과 같습니다.

ini_set($varname, $newvalue)
로그인 후 복사

여기서 $varname은 수정할 구성 옵션이고 $newvalue는 구성 옵션의 새 값입니다.

Tips: ini_set() 함수는 모든 구성 옵션을 수정할 수 없습니다. "https://www.php.net/manual/zh/ini.list.php"를 방문하면 수정할 수 있는 구성 옵션을 볼 수 있습니다.

【예시】 ini_set() 함수를 사용하여 시간대를 설정합니다.

<?php
header("Content-type:text/html;charset=utf-8");
ini_set(&#39;date.timezone&#39;, &#39;GMT&#39;);
echo &#39;当前的格林尼治时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>
로그인 후 복사

실행 결과는 다음과 같습니다.

当前的格林尼治时间为:2021-07-16 12:25:11
乌鲁木齐的当前时间为:2021-07-16 20:25:11
上海的当前时间为:2021-07-16 20:25:11
로그인 후 복사
3) 시간대를 설정하려면 date_default_timezone_set() 함수를 사용하세요.

PHP의 date_default_timezone_set() 함수는 PHP의 모든 시간 및 날짜 함수에 대한 기본 시간대를 설정할 수 있습니다. 스크립트의 구문 형식은 다음과 같습니다.

date_default_timezone_set($timezone_identifier)
로그인 후 복사

$timezone_identifier 매개변수는 UTC(그리니치 표준시) 또는 Europe/Lisbon(포르투갈)과 같은 시간대 식별자입니다.

PHP5.1.0(이 버전에서는 날짜 및 시간 함수가 다시 작성됨)부터 시간대가 불법인 경우 날짜 및 시간 함수를 호출할 때마다 시스템 설정이나 TZ 환경의 경우 E_NOTICE 수준 오류 메시지가 생성됩니다. 변수가 사용되면 E_STRICT 수준 메시지도 생성됩니다.

【예시】date_default_timezone_set() 함수를 사용하여 시간대를 설정하세요.

<?php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set(&#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Europe/Lisbon&#39;);
echo &#39;葡萄牙的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>
로그인 후 복사

실행 결과는 다음과 같습니다.

乌鲁木齐的当前时间为:2021-07-16 20:25:28
葡萄牙的当前时间为:2021-07-16 13:25:28
上海的当前时间为:2021-07-16 20:25:28
로그인 후 복사
추천 학습: "PHP Video Tutorial

"🎜

위 내용은 PHP에서 시간대를 설정해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿