PHP에서는 종종 Timezone_abbreviations_list () 함수를 사용하여 현재 시간대의 모든 시간 영역 약어를 얻습니다. 이 함수는 각 시간대 정보에 하나 이상의 시간대 약어가 포함 된 시간대 정보 배열을 반환합니다. 경우에 따라 반환 된 시간대 약어 목록이 복제되어 문제가 발생합니다. 그렇다면 왜 이런 일이 발생합니까? 시간대 약어의 고유 한 목록을 제거하고 얻는 방법은 무엇입니까?
동일한 시간대에 여러 개의 약어가있을 수 있습니다 . <br> 시간대는 여러 가지 다른 약어를 가질 수 있습니다. 예를 들어, "PST"(Pacific Standard Time) 및 "PDT"(Pacific Daylight Saving Time)는 실제로 동일한 시간 영역을 나타냅니다. 차이점은 다른 계절에 사용된다는 것입니다. 각 timezone_abbreviations_list () 마다 해당 시간대와 관련된 모든 약어를 반환하므로 결과에 유사한 중복 약어가 표시 될 수 있습니다.
역사적 이유 <br> 시간대 약어는 오랜 역사를 가지고 있으며 시간대 약어 규칙은 장소마다 다를 수 있습니다. 다른 지역의 표준 시간은 특히 일광 절약과 표준 시간 사이를 전환 할 때 동일한 약어를 사용할 수 있습니다. 예를 들어, "CST"는 미국의 중국 표준 시간 또는 중앙 표준 시간을 나타낼 수 있으므로 다른 시간대에 동일한 약어가 나타날 수 있습니다.
시간대 변경 및 일광 절약 시간 <br> 일광 절약 시간의 구현 및 취소로 인해 특정 시간대에 여러 개의 약어가 나타날 수 있습니다. 예를 들어, 뉴욕의 시간대 약어는 시즌이 바뀌면서 "EST"(East 표준 시간)에서 "EDT"(East Daylight Saving Saving Time)로 전환됩니다. 따라서 같은 영역에서도 다른 시점에서 복귀는 다릅니다.
Time Zone 약어 복제 문제를 해결하기 위해 PHP의 기본 기능을 사용하여이를 제거하여 최종 획득 한 시간대 약어 목록의 각 약어가 고유한지 확인할 수 있습니다.
다음은 TimeZone의 약어를 얻기 위해 Timezone_abbreviations_list ()를 사용하는 방법을 보여주는 간단한 PHP 코드 예입니다.
<?php
// 시간대 약어 목록을 얻으십시오
$timezone_abbreviations = timezone_abbreviations_list();
// 고유 한 시간대 약어를 저장하는 배열을 만듭니다
$unique_abbreviations = [];
// 시간대의 약어 목록을 반복하십시오,무거운 곳으로 가십시오
foreach ($timezone_abbreviations as $region => $abbreviations) {
foreach ($abbreviations as $abbreviation) {
$unique_abbreviations[$abbreviation['abbr']] = $abbreviation;
}
}
// 输出무거운 곳으로 가십시오后的时区缩写列表
foreach ($unique_abbreviations as $abbreviation) {
echo $abbreviation['abbr'] . " - " . $abbreviation['offset'] . "<br>";
}
?>
이 코드에서는 먼저 Timezone_abbreviations_list ()를 호출하여 모든 TimeZone 약어 정보를 얻습니다. 다음으로, 연관 배열 $ 고유 _abbriations를 사용하여 약어가 키로 사용되는 각 시간대 약어를 저장하십시오. 배열의 키가 고유하므로 중복 약어가 자동으로 덮어 져서 중복 제거 효과가 달성됩니다.
이런 식으로, 결과 구역 약어 목록에 중복 값이 없도록 할 수 있습니다.
Timezone_abbreviations_list () 함수는 시간대 약어를 반환 할 때 중복 값을 가질 수 있습니다. 주로 동일한 시간대에 여러 가지 다른 약어가있을 수 있기 때문에 또는 역사적 및 일광 절약 시간으로 인해 약어가 복제됩니다. 간단한 PHP 코드를 사용하면 이러한 중복 시간대 약어를 쉽게 제거하여 얻은 시간대 약어 목록이 고유한지 확인할 수 있습니다.