<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 코드 예제 의이 섹션은 모든 시간대 약어 정보를 얻는 방법을 보여줍니다.,기본 시간대를 설정하십시오。</span></span><span>
</span><span><span class="hljs-comment">// 기사의 본문과 관련이 없습니다.,시연 목적으로 만。</span></span><span>
</span><span><span class="hljs-variable">$timezones</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>();
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$timezones</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$abbr</span></span><span> => </span><span><span class="hljs-variable">$zones</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"약어: <span class="hljs-subst">$abbr</span></span></span><span>\n";
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$zones</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$zone</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">" - 시간대ID: "</span></span><span> . </span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'timezone_id'</span></span><span>] . </span><span><span class="hljs-string">", 몇 초 전환: "</span></span><span> . </span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'offset'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
}
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"当前默认시간대: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date_default_timezone_get</span></span><span>() . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
---
</span><span><span class="hljs-comment"># 방법timezone_abbreviations_list기능 및date_default_timezone_set函数配合使用实现시간대管理?</span></span><span>
존재하다PHP가운데,시간대管理对于处理时间그리고日期非常关键,特别是존재하다跨시간대应用场景가운데。PHP두 가지 중요한 기능이 제공됩니다——`</span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>()` 그리고 `</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>()`,함께 사용할 수 있습니다,实现灵活且准确的시간대管理。
</span><span><span class="hljs-comment">## 하나、timezone_abbreviations_list기능 소개</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>()` 函数返回하나个数组,列出了所有시간대약어及其对应的详细信息。배열의 구조는 대략 다음과 같습니다:
```php
[
</span><span><span class="hljs-string">"abbr"</span></span><span> => [
[
</span><span><span class="hljs-string">"offset"</span></span><span> => 몇 초 전환,
</span><span><span class="hljs-string">"dst"</span></span><span> => 일광 절약 시간 여부(부울 가치),
</span><span><span class="hljs-string">"timezone_id"</span></span><span> => 시간대标识符字符串
],
...
],
...
]
</span></span>이 기능은 개발자가 시간대의 표준 약어, 오프셋 및 해당 시간대 ID를 얻을 수 있으므로 후속 시간대 스위칭 및 디스플레이를 용이하게합니다.
date_default_timezone_set (String $ timezoneid)은 PHP 실행 환경의 기본 시간대를 설정하는 데 사용됩니다. 설정 후 DATE () , time () 등과 같은 모든 시간 관련 함수는이 기본 시간대를 사용하여 시간을 처리합니다.
예:
<span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>); </span><span><span class="hljs-comment">// 상하이 시간 수출</span></span><span>
</span></span>요구 사항이 있고 사용자가 시간대 약어 (예 : "CST")를 통과한다고 가정 하고이 약어에 따라 해당 시간대로 자동 전환하여 시간을 균일하게 계산하고 표시 할 수 있습니다.
Timezone_abbreviations_list () 를 통해 모든 시간대 약어에 해당하는 데이터를 가져옵니다.
목표 약어에 해당하는 시간대 목록을 찾으십시오 (하나의 약어는 여러 시간 영역에 해당 할 수 있음).
적절한 시간 영역 식별자를 선택하십시오 (예 : 오프셋은 사용자 요구에 가장 적합하거나 기본값 먼저).
date_default_timezone_set ()을 사용하여 PHP 시간대를 해당 시간대로 설정하십시오.
시간을 가져 와서 표시하십시오.
샘플 코드 :
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">setTimezoneByAbbr</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$abbr</span></span></span><span>) {
</span><span><span class="hljs-variable">$abbr</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$abbr</span></span><span>);
</span><span><span class="hljs-variable">$timezones</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$timezones</span></span><span>[</span><span><span class="hljs-variable">$abbr</span></span><span>])) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">Exception</span></span><span>(</span><span><span class="hljs-string">"시간대약어 '<span class="hljs-subst">{$abbr}</span></span></span><span>' 不存존재하다");
}
</span><span><span class="hljs-comment">// 这里默认选第하나个시간대,필요한 경우,오프셋 또는 기타 조건에 따라 필터링 할 수 있습니다</span></span><span>
</span><span><span class="hljs-variable">$zone</span></span><span> = </span><span><span class="hljs-variable">$timezones</span></span><span>[</span><span><span class="hljs-variable">$abbr</span></span><span>][</span><span><span class="hljs-number">0</span></span><span>];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'timezone_id'</span></span><span>])) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">Exception</span></span><span>(</span><span><span class="hljs-string">"시간대ID유효하지 않은"</span></span><span>);
}
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'timezone_id'</span></span><span>]);
}
</span><span><span class="hljs-comment">// 예:전환하십시오CST시간대</span></span><span>
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-title function_ invoke__">setTimezoneByAbbr</span></span><span>(</span><span><span class="hljs-string">'CST'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 시간:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>) . </span><span><span class="hljs-string">",시간대:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date_default_timezone_get</span></span><span>();
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"실수:"</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>일부 약어는 여러 시간 구역 (예 : CST와 같은 중국 표준 시간, 중앙 아메리카 시간 등)에 해당하며 특정 시나리오에 따라 적절한 시간대 ID를 선택해야합니다.
모호성을 피하기 위해 약어 대신 시간대 식별자 (아시아/상하이, 미국/시카고)를 사용하는 것이 좋습니다.
이 기능은 사용자 국가 또는 지역의 정보에 따라 가장 적절한 시간대와 동적으로 일치하도록 확장 될 수 있습니다.
Timezone_abbreviations_list () 및 date_default_timezone_set () 는 PHP의 시간대 처리를위한 핵심 도구입니다. 전자는 상세한 시간대 약어 및 해당 식별자를 얻고 후자는 기본 시간대를 유연하게 설정하여 다중 시간 영역 응용 프로그램의 요구를 충족시키기 위해 효율적이고 정확한 시간대 관리를 달성 할 수 있습니다.
<span></span>