Dans le développement de PHP, la fonction setLocale () et la constante LC_Time sont souvent utilisées pour contrôler l'affichage localisé des dates et des temps. En définissant les paramètres régionaux appropriés, le programme peut afficher correctement les formats de date et d'heure en fonction de différentes langues et habitudes régionales. Cet article introduira en détail comment utiliser SetLocale () avec LC_Time pour définir le format de date et réaliser rapidement l'effet d'affichage localisé.
La fonction setLocale () est utilisée pour définir le lieu du script actuel, qui peut affecter l'affichage de la date, du temps, du format de numéro et d'autres aspects du programme. Cette fonction accepte deux paramètres:
Catégorie : Définissez différents types d'informations de localisation. Les plus courants incluent:
LC_ALL : Définissez toutes les catégories.
Lc_time : définit la localisation liée à l'heure et à la date.
LC_NUMERIC : Définissez le format numérique.
LC_MONETARY : Définissez le format de devise.
LC_COLLATE : Définissez les règles de tri des chaînes.
Locale : un identifiant qui représente la région. Le format est "Language_Country" ou "Language_Country.coding", par exemple: "ZH_CN.UTF-8" représente le chinois (Chine, UTF-8 Encoding).
Après avoir établi les informations de zone appropriées via setLocale () , PHP utilisera les informations de zone pour traiter l'affichage de date et d'heure pertinent.
La constante LC_Time est utilisée pour spécifier les paramètres de localisation liés à l'heure et à la date. Grâce à lui, vous pouvez contrôler le format de date, le nom du mois, le jour de la semaine, et plus encore. Pour implémenter des formats de date localisés, vous devez généralement utiliser la fonction setLocale () avec strftime () .
Exemple:
<span><span><span class="hljs-comment">// Se dérouler comme une région chinoise(Chine)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la date et la sortie en cours au format localisé</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">'%A, %d %B %Y'</span></span><span>); </span><span><span class="hljs-comment">// Sortir:Mercredi, 26 Juin 2025</span></span><span>
</span></span>
Dans l'exemple ci-dessus, SetLocale () définit la région du script actuel vers la Chine (chinois simplifié). La fonction strftime () sort la date au format chinois en fonction du réglage de la région actuelle.
Avec strftime () , vous pouvez spécifier de manière flexible comment les dates sont affichées. Voici quelques formats courants:
% A : Nom complet de la semaine (par exemple: lundi, mardi, etc.)
% A : Un court nom du jour de la semaine (par exemple: lundi, mardi, etc.)
% B : Nom du mois complet (par exemple: janvier, février, etc.)
% B : un nom de mois court (par exemple: premier, deuxième, etc.)
% D : date dans le mois (01 à 31)
% Y : Année à quatre chiffres (par exemple: 2025)
% Y : Année à deux chiffres (exemple: 25)
% H : 24 heures (00 à 23)
% M : minutes (00 à 59)
% S : secondes (00 à 59)
Exemple:
<span><span><span class="hljs-comment">// Se dérouler comme une région anglophone</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'en_US.UTF-8'</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez la date et la sortie en cours au format localisé</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">'%A, %d %B %Y'</span></span><span>); </span><span><span class="hljs-comment">// Sortir:Wednesday, 26 June 2025</span></span><span>
</span></span>
Avec différents paramètres de paramètres régionaux et des formateurs de date, vous pouvez facilement réaliser l'affichage de la date dans différentes langues et régions.
Problèmes de support des paramètres régionaux : Tous les serveurs ne soutiennent pas tous les identificateurs régionaux. Lorsque vous utilisez SetLocale () , il est préférable de vérifier les zones prises en charge du serveur via la commande LOCALE -A en premier. Si l'identifiant de région spécifié n'existe pas, SetLocale () reviendra faux , donc l'identifiant de la région doit être sélectionné avec prudence.
Problème de réglage du fuseau horaire : setLocale () ne contrôle que le format de localisation de la région, et la fonction date_default_timezone_set () est nécessaire pour définir des fuseaux horaires. Si vous devez afficher l'heure en fonction du fuseau horaire spécifique, vous pouvez l'utiliser avec date_default_timezone_set () .
<span><span><span class="hljs-comment">// Définir le fuseau horaire</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-comment">// Se dérouler comme une région chinoise</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span><span><span class="hljs-comment">// Sortir当前时间</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">'%Y-%m-%d %H:%M:%S'</span></span><span>); </span><span><span class="hljs-comment">// Sortir:2025-06-26 10:30:45</span></span><span>
</span></span>
Problèmes de codage : Si vous devez prendre en charge les caractères non latins tels que le chinois, il est recommandé d'utiliser un codage UTF-8. Si vous rencontrez des problèmes de code brouillé lors de la définition des paramètres régionaux , vous pouvez essayer d'installer le package de langue correspondant sur le serveur et vous assurer que l'encodage est cohérent.
En utilisant SetLocale () avec la constante de LC_time , PHP peut réaliser un affichage localisé des dates et des heures. En sélectionnant différents identificateurs de région, les développeurs peuvent ajuster automatiquement le format de date en fonction de l'emplacement géographique de l'utilisateur pour offrir une expérience utilisateur plus amicale. Faites attention pour vérifier si le serveur prend en charge l'identifiant de zone correspondant pour assurer la cohérence de l'encodage pour éviter les problèmes d'affichage tels que le code brouillé.
Avec les exemples et instructions de cet article, vous devriez être en mesure d'implémenter rapidement les paramètres de format de date localisé et d'ajouter un support multilingue à votre application.