Zones horaires en PHP et MySQL
L'intégration d'un système de fuseaux horaires peut être complexe, et comprendre les fuseaux horaires en PHP et MySQL peut être un défi . Voici un guide complet pour vous aider à naviguer efficacement sur ce sujet :
Stockage des fuseaux horaires dans la base de données
Utilisez toujours DATETIME, et non TIMESTAMP, pour stocker les dates dans MySQL. DATETIME permet plus de granularité et de flexibilité. Convertissez tous les horodatages PHP en UTC avant de les stocker dans MySQL. Vous pouvez utiliser un code comme celui-ci :
$dateUTC = new DateTime('2023-03-08 14:30:00', new DateTimeZone('UTC'));
Récupération des fuseaux horaires de la base de données
Vous pouvez récupérer les dates et heures de MySQL en utilisant le code suivant :
$dateRetrieved = new DateTime($row['datetime_column'], new DateTimeZone('UTC'));
Conversion des fuseaux horaires
Convertissez la date/heure récupérée en fuseau horaire local de l'utilisateur affiché. Cela peut être fait en utilisant :
$localTime = $dateRetrieved->setTimeZone(new DateTimeZone('America/Los_Angeles'));
Réglage automatique de l'heure d'été (DST)
Utilisez DateTimeZone avec DateTime pour une fonctionnalité puissante. Les versions modernes de PHP incluent la classe DateTimeZone, qui peut être utilisée pour ajuster automatiquement l'heure d'été en fonction de l'emplacement sélectionné par l'utilisateur :
// This will be PDT right now, UTC-7 $la = new DateTimeZone('America/Los_Angeles'); $nowish->setTimeZone($la);
Éviter les fuseaux horaires obsolètes
Utiliser fuseaux horaires nommés au lieu de fuseaux horaires Etc/GMT.... Les fuseaux horaires nommés sont préférables et ne seront pas obsolètes dans les futures versions de PHP.
Gestion des données héritées
Pour gérer les données héritées stockées sans fuseaux horaires :
Conclusion
Comprendre les fuseaux horaires dans PHP et MySQL nécessite une attention particulière au stockage, à la récupération et à la conversion des données. En suivant les directives décrites ici, vous pouvez garantir une gestion précise des fuseaux horaires spécifiques à l'utilisateur dans vos applications PHP/MySQL.
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!