Maison  >  Article  >  développement back-end  >  Comment résoudre le fuseau horaire incorrect en php

Comment résoudre le fuseau horaire incorrect en php

青灯夜游
青灯夜游original
2023-02-02 19:09:433832parcourir

Solution : 1. Dans le fichier php.ini, définissez "date.timezone = "time zone identifier"" pour convertir le fuseau horaire ; 2. Utilisez "ini_set('date.timezone', 'time zone identifier" dans le fichier php.ini. php file ');" pour convertir le fuseau horaire ; 3. Utilisez l'instruction "date_default_timezone_set("time zone identifier");" dans le fichier php pour convertir le fuseau horaire.

Comment résoudre le fuseau horaire incorrect en php

L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP8, ordinateur DELL G3

Le temps est essentiel dans la vie, et il en est de même en PHP. Le temps doit parfois être stocké pour enregistrer quelque chose ou parcourir affiché. dans l'appareil.

La raison pour laquelle le fuseau horaire php est incorrect

En PHP, la date et l'heure sont obtenues via les fonctions de date et d'heure. Les fonctions de date et d'heure dépendent du réglage de l'heure du serveur. Le réglage de l'heure du serveur est par défaut l'heure de Greenwich (zéro fuseau horaire). Si l'heure n'est pas spécifiquement définie sur un fuseau horaire spécifique, l'heure obtenue via les fonctions PHP pertinentes sera. être l'heure du fuseau horaire zéro. C'est 8 heures de moins que l'heure de Pékin.

En raison de la réécriture de la fonction data() dans PHP5.0, la fonction date et heure actuelle est inférieure de 8 heures à l'heure système. Le paramètre par défaut du langage PHP est l'heure standard de Greenwich (c'est-à-dire que le fuseau horaire zéro est utilisé), donc pour obtenir l'heure locale actuelle peut être différente de l'heure locale, le paramètre de fuseau horaire dans le langage PHP doit être modifié.

Comment définir le fuseau horaire en PHP

Il existe trois façons de définir le fuseau horaire en PHP. Présentons chacune d'elles ci-dessous.

1) Défini dans le fichier de configuration

Le fichier de configuration de PHP est le fichier php.ini dans le répertoire d'installation de PHP, recherchez-le et ouvrez-le. Recherchez ensuite date.timezone dans le fichier, date.timezone

;date.timezone =前面的;与 PHP 中的//功能相同,都是注释的意思,这里我们需要将这个;

remplacez le ; devant ;date.timezone = par le / / en PHP a la même fonction et signifie un commentaire. Ici, nous devons supprimer ce ; et remplir l'identifiant de fuseau horaire correspondant après le = dans cette phrase, comme indiqué ci-dessous :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shangha

Certains identifiants de fuseau horaire couramment utilisés et leurs significations :
  • Asia/Shanghai —— Shanghai
  • Asia/Chongqing —— Chongqing
  • Asia/Urumqi —— Urumqi
  • Asia /Hong_Kong — — Hong Kong
  • Asie/Macao —— Macao
  • Asie/Taipei —— Taipei
  • Asie/Singapour —— Singapour
  • RPC —— Fuseau horaire de la Chine

Au niveau national, nous le ferons Le fuseau horaire peut être défini sur « Asie/Shanghai ou RPC ». N'oubliez pas de redémarrer le serveur une fois le réglage réussi !

2) Utilisez la fonction ini_set() pour définir le fuseau horaire

La fonction ini_set() en PHP peut définir la valeur de l'option de configuration spécifiée. Cette option de configuration conservera la nouvelle valeur lorsque le script est en cours d'exécution. , et sera restauré à la fin du script. Le format de syntaxe de la fonction est le suivant :

ini_set($varname, $newvalue)

où $varname est l'option de configuration à modifier, et $newvalue est la nouvelle valeur de l'option de configuration.

Conseils : La fonction ini_set() ne peut pas modifier toutes les options de configuration. Vous pouvez consulter les options de configuration qui peuvent être modifiées en visitant "https://www.php.net/manual/zh/ini.list.php".

【Exemple】Utilisez la fonction ini_set() pour définir le fuseau horaire.

<?php
header("Content-type:text/html;charset=utf-8");
ini_set(&#39;date.timezone&#39;, &#39;GMT&#39;);
echo &#39;当前的格林尼治时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
ini_set(&#39;date.timezone&#39;, &#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>

Les résultats en cours sont les suivants :

Comment résoudre le fuseau horaire incorrect en php

3) Utilisez la fonction date_default_timezone_set() pour définir le fuseau horaire

La fonction date_default_timezone_set() en PHP peut définir un fuseau horaire par défaut pour toutes les heures et toutes les dates. fonctions dans le script. Le format de syntaxe est le suivant :

date_default_timezone_set($timezone_identifier)

Le paramètre $timezone_identifier est l'identifiant du fuseau horaire, tel que UTC (Greenwich Mean Time) ou Europe/Lisbonne (Portugal).

Depuis PHP5.1.0 (la fonction date et heure a été réécrite dans cette version), si le fuseau horaire est illégal, chaque appel à la fonction date et heure générera un message d'erreur de niveau E_NOTICE si le paramètre système ou l'environnement TZ. variable est utilisée, des messages de niveau E_STRICT sont également générés.

【Exemple】Utilisez la fonction date_default_timezone_set() pour définir le fuseau horaire.

<?php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set(&#39;Asia/Urumqi&#39;);
echo &#39;乌鲁木齐的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Europe/Lisbon&#39;);
echo &#39;葡萄牙的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time()).&#39;<br>&#39;;
date_default_timezone_set(&#39;Asia/Shanghai&#39;);
echo &#39;上海的当前时间为:&#39;.date(&#39;Y-m-d H:i:s&#39;,time());
?>

Les résultats en cours d'exécution sont les suivants :

Comment résoudre le fuseau horaire incorrect en php

Apprentissage recommandé : "Tutoriel vidéo PHP

"🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:A quoi sert break en phpArticle suivant:A quoi sert break en php