Position actuelle: Accueil> Derniers articles> Comment utiliser la fonction Timezone_abbreviations_list et la fonction date_default_timezone_set pour implémenter la gestion du fuseau horaire?

Comment utiliser la fonction Timezone_abbreviations_list et la fonction date_default_timezone_set pour implémenter la gestion du fuseau horaire?

gitbox 2025-08-13
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Cette section de l&#39;exemple de code montre comment obtenir toutes les informations d&#39;abréviations de fuseau horaire,Et définir le fuseau horaire par défaut。</span></span><span>
</span><span><span class="hljs-comment">// N&#39;a rien à voir avec le texte principal de l&#39;article,À des fins de démonstration uniquement。</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> =&gt; </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">"abréviation: <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">" - Fuseau horaireID: "</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">", Secondes décalées: "</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">"当前默认Fuseau horaire: "</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">?&gt;</span></span><span>

---

</span><span><span class="hljs-comment"># Commenttimezone_abbreviations_listFonctions etdate_default_timezone_set函数配合使用实现Fuseau horaire管理?</span></span><span>

existerPHPmilieu,Fuseau horaire管理对于处理时间et日期非常关键,特别是exister跨Fuseau horaire应用场景milieu。PHPDeux fonctions importantes sont fournies——`</span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>()` et `</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>()`,Ils peuvent être utilisés ensemble,实现灵活且准确的Fuseau horaire管理。

</span><span><span class="hljs-comment">## un、timezone_abbreviations_listFonction Introduction</span></span><span>

`</span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>()` 函数返回un个数组,列出了所有Fuseau horaireabréviation及其对应的详细信息。La structure du tableau est à peu près la suivante:

```php
[
    </span><span><span class="hljs-string">"abbr"</span></span><span> =&gt; [
        [
            </span><span><span class="hljs-string">"offset"</span></span><span> =&gt; Secondes décalées,
            </span><span><span class="hljs-string">"dst"</span></span><span> =&gt; Que ce soit l&#39;heure d&#39;été(Valeur booléenne),
            </span><span><span class="hljs-string">"timezone_id"</span></span><span> =&gt; Fuseau horaire标识符字符串
        ],
        ...
    ],
    ...
]
</span></span>

Cette fonction est très utile car elle permet aux développeurs d'obtenir l'abréviation standard, le décalage et l'ID de fuseau horaire correspondant du fuseau horaire, ce qui facilite la commutation et l'affichage du fuseau horaire ultérieur.

2. INTRODUCTION À DATE_DEFAULT_TIMEZONE_SET

date_default_timezone_set (String $ TimeZoneId) est utilisé pour définir le fuseau horaire par défaut de l'environnement de fonctionnement PHP. Après le réglage, toutes les fonctions liées au temps telles que date () , time () , etc. utiliseront ce fuseau horaire par défaut pour traiter l'heure.

Exemple:

 <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">// Exporter l&#39;heure de Shanghai</span></span><span>
</span></span>

3. Utilisez-le en combinaison pour réaliser la gestion du fuseau horaire

Supposons que vous ayez une exigence, et l'utilisateur passe dans une abréviation du fuseau horaire (par exemple, "CST"), et vous souhaitez passer automatiquement au fuseau horaire correspondant en fonction de cette abréviation, afin de calculer uniformément et d'afficher l'heure.

  1. Obtenez les données correspondant à toutes les abréviations du fuseau horaire via timezone_abbreviations_list () .

  2. Trouvez une liste de fuseaux horaires correspondant à l'abréviation cible (une abréviation peut correspondre à plusieurs fuseaux horaires).

  3. Sélectionnez l'identifiant de fuseau horaire approprié (par exemple, le décalage est le plus adapté aux besoins des utilisateurs, ou par défaut en premier).

  4. Utilisez date_default_timezone_set () pour définir le fuseau horaire PHP sur ce fuseau horaire.

  5. Obtenez et affichez l'heure.

Exemple de code:

 <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">"Fuseau horaireabréviation '<span class="hljs-subst">{$abbr}</span></span></span><span>' 不存exister");
    }

    </span><span><span class="hljs-comment">// 这里默认选第un个Fuseau horaire,Si nécessaire,Peut être filtré en fonction de décalage ou d&#39;autres conditions</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">"Fuseau horaireIDinvalide"</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">// Exemple:Passer àCSTFuseau horaire</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">"Heure actuelle:"</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">",Fuseau horaire:"</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">"erreur:"</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>

4. Choses à noter

  • Certaines abréviations correspondent à plusieurs fuseaux horaires (tels que le CST peuvent être l'heure standard chinoise, le temps d'Amérique centrale, etc.), et il est nécessaire de sélectionner l'ID de fuseau horaire approprié en fonction du scénario spécifique.

  • Il est recommandé d'utiliser des identifiants de fuseau horaire (comme l'Asie / Shanghai, l'Amérique / Chicago) au lieu des abréviations directement pour éviter l'ambiguïté.

  • La fonction peut être étendue pour correspondre dynamiquement le fuseau horaire le plus approprié en fonction des informations du pays ou de la région de l'utilisateur.

5. Résumé

Timezone_abbreviations_list () et date_default_timezone_set () sont les outils principaux du traitement du fuseau horaire en php. Le premier obtient une abréviation détaillée du fuseau horaire et des identifiants correspondants, et le second définit le fuseau horaire par défaut de manière flexible, ce qui peut réaliser une gestion de fuseau horaire efficace et précise pour répondre aux besoins des applications de zone multiples.

 <span></span>