Maison > Article > développement back-end > Pourquoi php doit-il définir le fuseau horaire ?
Depuis que PHP5.0 a réécrit la fonction data(), la fonction date et heure actuelle est inférieure de 8 heures à l'heure du système ; et le paramètre par défaut du langage PHP est l'heure de Greenwich standard (c'est-à-dire que le fuseau horaire zéro est utilisé). ), donc pour obtenir l'heure locale actuelle, vous devez modifier le paramètre de fuseau horaire dans le langage PHP.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Le temps est essentiel dans la vie, et il en est de même en PHP Il faut parfois stocker le temps pour enregistrer quelque chose ou. affiché dans le navigateur.
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.
Division des fuseaux horaires
Le monde est divisé en 24 fuseaux horaires. Chaque fuseau horaire a sa propre heure locale. L'heure locale de chaque fuseau horaire diffère de 1 à 23 heures en même temps. , l'heure locale de Londres, Royaume-Uni et l'heure locale de Pékin. Le décalage horaire est de 8 heures.
Dans le domaine des communications radio internationales, une heure unifiée est utilisée, appelée Temps universel coordonné (UTC). UTC est la même que le temps moyen de Greenwich (GMT).
Réglage du fuseau horaire en PHP
En raison de la réécriture de la fonction data() en PHP5.0, la fonction date et heure actuelle est inférieure de 8 heures à l'heure du 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, vous devez modifier le paramètre de fuseau horaire dans le langage 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,
et le ;date.timezone =
devant ;
a la même fonction que le //
en PHP. Ils signifient tous les deux des commentaires. 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 :
Asie/Shanghai —— Shanghai
Asie/Chongqing —— Chongqing
Asie/Urumqi —— Urumqi
Asie/Hong_Kong —— Hong Kong
Asie/Macao —— Macao
Asie/Taipei —— Taipei
Asie/Singapour —— Singapour
RPC —— Chine fuseau horaire
Conseils : Si vous êtes en Chine, nous pouvons définir le fuseau horaire 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('date.timezone', 'GMT'); echo '当前的格林尼治时间为:'.date('Y-m-d H:i:s',time()).'<br>'; ini_set('date.timezone', 'Asia/Urumqi'); echo '乌鲁木齐的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; ini_set('date.timezone', 'Asia/Shanghai'); echo '上海的当前时间为:'.date('Y-m-d H:i:s',time()); ?>
Les résultats en cours sont les suivants :
当前的格林尼治时间为:2021-07-16 12:25:11 乌鲁木齐的当前时间为:2021-07-16 20:25:11 上海的当前时间为:2021-07-16 20:25:11
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 fonctions d'heure et de date 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/Lisbon (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('Asia/Urumqi'); echo '乌鲁木齐的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; date_default_timezone_set('Europe/Lisbon'); echo '葡萄牙的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>'; date_default_timezone_set('Asia/Shanghai'); echo '上海的当前时间为:'.date('Y-m-d H:i:s',time()); ?>
Les résultats en cours d'exécution sont les suivants :
乌鲁木齐的当前时间为:2021-07-16 20:25:28 葡萄牙的当前时间为:2021-07-16 13:25:28 上海的当前时间为:2021-07-16 20:25:28
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!