Position actuelle: Accueil> Derniers articles> Pourquoi le tempszone_abbreviations_list est-il obtenu par des doublons timezone_abbreviations_list? Comment le résoudre par répétition?

Pourquoi le tempszone_abbreviations_list est-il obtenu par des doublons timezone_abbreviations_list? Comment le résoudre par répétition?

gitbox 2025-06-16

Dans PHP, nous utilisons souvent la fonction Timezone_abbreviations_list () pour obtenir toutes les abréviations du fuseau horaire du fuseau horaire actuel. Cette fonction renvoie un éventail d'informations de fuseau horaire, où chaque information de fuseau horaire contient une ou plusieurs abréviations du fuseau horaire. Dans certains cas, la liste d'abréviation du fuseau horaire retourné sera dupliquée, causant des problèmes. Alors, pourquoi cela se produit-il? Comment déduir et obtenir une liste unique d'abréviations du fuseau horaire?

Pourquoi la duplication d'abréviation du fuseau horaire se produit-elle?

  1. Il peut y avoir plusieurs abréviations dans le même fuseau horaire <br> Un fuseau horaire peut avoir plusieurs abréviations différentes. Par exemple, "PST" (temps standard du Pacifique) et "PDT" (temps d'été) se réfèrent réellement au même fuseau horaire, et la différence est qu'ils sont utilisés dans différentes saisons. Pour chaque temps de temps_abbreviations_list () renvoie toutes les abréviations liées à ce fuseau horaire, vous pouvez donc voir des abréviations en double similaires dans les résultats.

  2. Raisons historiques <br> L'abréviation du fuseau horaire a une longue histoire et les règles d'abréviation du fuseau horaire peuvent varier d'un endroit à l'autre. Le temps standard dans différentes régions peut utiliser la même abréviation, en particulier sur le commutateur entre l'économie du jour et l'heure standard. Par exemple, le «CST» peut représenter le temps standard de la Chine ou l'heure standard centrale aux États-Unis, de sorte que la même abréviation peut apparaître dans des fuseaux horaires différents.

  3. Changements de fuseau horaire et temps d'économie de jour <br> La mise en œuvre et l'annulation du temps d'été qui peut faire apparaître plusieurs abréviations dans certains fuseaux horaires. Par exemple, l'abréviation du fuseau horaire à New York passera de "EST" (East Standard Time) à "EDT" (East Daylight Time) à mesure que la saison change. Par conséquent, même dans la même région, l'abréviation est revenue à différents moments dans le temps sera différente.

Comment le résoudre par répétition?

Pour résoudre le problème de la duplication d'abréviation du fuseau horaire, nous pouvons utiliser certaines fonctions de base de PHP pour la dédupliquer pour garantir que chaque abréviation dans la liste d'abréviation du fuseau horaire acquise final est unique.

Voici un exemple de code PHP simple montrant comment utiliser Timezone_abbreviations_list () pour obtenir les abréviations duzon et Deduplicate:

 <?php
// Obtenez la liste des abréviations du fuseau horaire
$timezone_abbreviations = timezone_abbreviations_list();

// Créez un tableau pour stocker des abréviations de fuseau horaire uniques
$unique_abbreviations = [];

// Itérer sur la liste d&#39;abréviation des fuseaux horaires,Aller au lourd
foreach ($timezone_abbreviations as $region => $abbreviations) {
    foreach ($abbreviations as $abbreviation) {
        $unique_abbreviations[$abbreviation['abbr']] = $abbreviation;
    }
}

// 输出Aller au lourd后的时区缩写列表
foreach ($unique_abbreviations as $abbreviation) {
    echo $abbreviation['abbr'] . " - " . $abbreviation['offset'] . "<br>";
}
?>

Dans ce code, nous appelons d'abord des informations sur l'abréviation de l'abréviation de l'abréviation par le fuseau horaire. Ensuite, utilisez un tableau associatif $ unique_abbreviations pour stocker à chaque abréviation du fuseau horaire, où l'abréviation est utilisée comme clé. Étant donné que les clés du tableau sont uniques, les abréviations en double seront automatiquement écrasées, réalisant ainsi l'effet de la déduplication.

De cette façon, nous pouvons nous assurer que la liste d'abréviation du fuseau horaire résultant n'a pas de valeurs en double.

en conclusion

La fonction Timezone_abbreviations_list () peut avoir des valeurs en double lors du renvoi de l'abréviation du fuseau horaire, principalement parce qu'il peut y avoir plusieurs abréviations différentes dans le même fuseau horaire, ou en raison de l'heure d'été historique et du jour, l'abréviation sera dupliquée. Avec un code PHP simple, nous pouvons facilement supprimer ces abréviations du fuseau horaire en double, garantissant que la liste d'abréviation du fuseau horaire obtenu est unique.