Obtention du fuseau horaire actuel du serveur MySQL
Dans MySQL, il existe une fonction qui vous aide à récupérer les paramètres de fuseau horaire actuels pour les paramètres globaux et configurations spécifiques au client. Voici comment vous pouvez l'utiliser :
mysql> SELECT @@global.time_zone, @@session.time_zone;
Cependant, l'utilisation de cette méthode peut entraîner l'obtention de "SYSTEM" comme valeur renvoyée, ce qui indique que MySQL est configuré pour s'aligner sur le fuseau horaire du système.
Récupération du fuseau horaire à l'aide de PHP
Si l'espace réservé "SYSTEM" est renvoyé, vous pouvez exploiter PHP pour obtenez le fuseau horaire utilisé par le système du serveur via la fonction date_default_timezone_get.
<?php // Get the system's time zone $timeZone = date_default_timezone_get(); echo "System time zone: $timeZone"; ?>
Considérations relatives au fuseau horaire des données de base de données
Il est crucial de noter que MySQL stocke la date et valeurs de temps sans inclure les informations de fuseau horaire. Cela implique que :
mysql> CREATE TABLE foo (timestamp DATETIME) ENGINE=MyISAM; mysql> INSERT INTO foo (timestamp) VALUES (NOW()); mysql> SET time_zone = '+01:00'; mysql> SELECT timestamp FROM foo; | timestamp | | ---------------------- | | 2010-05-29 08:31:59 | mysql> SET time_zone = '+02:00'; mysql> SELECT timestamp FROM foo; | timestamp | | ---------------------- | | 2010-05-29 08:31:59 | <== No change
Même si le fuseau horaire du serveur a été modifié, l'horodatage stocké reste le même. En effet, les horodatages dans MySQL ne tiennent pas compte nativement des fuseaux horaires.
Meilleures pratiques pour la gestion des fuseaux horaires
Pour maintenir l'intégrité des données, il est essentiel de respecter les recommandations suivantes :
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!