>백엔드 개발 >PHP 문제 >PHP에서 시간대를 변경하는 방법

PHP에서 시간대를 변경하는 방법

藏色散人
藏色散人원래의
2022-01-12 11:20:357698검색

PHP에서 시간대를 변경하는 방법: 1. 구성 파일에서 date.timezone을 검색하고 시간대를 설정합니다. 2. ini_set() 함수를 사용하여 시간대를 설정합니다. 3. date_default_timezone_set() 함수를 사용하여 다음을 수행합니다. 시간대를 설정하세요.

PHP에서 시간대를 변경하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP에서 시간대를 변경하는 방법은 무엇입니까?

PHP에서는 date를 통해 날짜와 시간을 얻습니다. 그리고 시간 기능. 날짜 및 시간 함수는 서버의 시간 설정에 따라 달라집니다. 서버의 시간 설정은 기본적으로 그리니치 시간(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]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

where; date.timezone = 이전 내용은 PHP의 //와 동일한 기능을 가지며 여기서는 모두 주석을 의미합니다. 이를 제거하고 아래와 같이 이 문장에서 = 뒤에 해당 시간대 식별자를 입력해야 합니다.

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shangha

다양한 시간대 식별자가 있습니다. "https://www.php.net/manual/을 방문하세요. zh/ timezones.php"를 참조하세요. 일반적으로 사용되는 시간대 식별자와 그 의미는 다음과 같습니다.

Asia/Shanghai —— 上海
Asia/Chongqing —— 重庆
Asia/Urumqi —— 乌鲁木齐
Asia/Hong_Kong —— 香港
Asia/Macao —— 澳门
Asia/Taipei —— 台北
Asia/Singapore —— 新加坡
PRC —— 中国时区

팁: 중국에서는 시간대를 "아시아/상하이 또는 PRC"로 설정할 수 있습니다. 이후 서버를 다시 시작하는 것을 잊지 마세요. 설정이 성공했습니다!

【예제】다음은 설정이 유효한지 확인하는 코드입니다.

<?php
    echo date(&#39;Y-m-d H:i:s&#39;,time());
?>

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

2020-03-26 09:56:52

실행 결과가 컴퓨터의 현지 시간과 동일하면 설정이 성공한 것입니다.

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
    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());
?>

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

当前的格林尼治时间为:2020-03-26 02:37:31
乌鲁木齐的当前时间为:2020-03-26 08:37:31
上海的当前时间为:2020-03-26 10:37:31

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
    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());
?>

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

乌鲁木齐的当前时间为:2020-03-26 08:35:59
葡萄牙的当前时间为:2020-03-26 02:35:59
上海的当前时间为:2020-03-26 10:35:59

추천 학습: "PHP Video Tutorial"

위 내용은 PHP에서 시간대를 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.