Synchronisation des fuseaux horaires dans PHP et MySQL
Vous développez une application qui nécessite de stocker des dates dans MySQL à l'aide de la fonction PHP date(). Il est nécessaire de comparer ces dates dans MySQL en utilisant NOW() pour calculer les différences horaires. Cependant, la fonction PHP date() utilise le fuseau horaire défini dans PHP, tandis que NOW() utilise le fuseau horaire configuré sur le serveur MySQL.
Pour résoudre ce problème, vous avez essayé différentes approches :
En fin de compte, le fuseau horaire MySQL reste inchangé.
Solution
Synchronisez les fuseaux horaires dans PHP et MySQL sans commandes manuelles de la console ni modifications dans php.ini :
PHP :
define('TIMEZONE', 'Europe/Paris');
date_default_timezone_set(TIMEZONE);
MySQL :
$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins d', $hrs*$sgn, $mins);
// Assuming an existing DB connection named $db
$db->exec("SET time_zone='$offset';");
Cette approche garantit que PHP et MySQL utilisent le même fuseau horaire, éliminant ainsi les écarts dans le stockage et la comparaison des dates. De plus, il élimine le besoin de paramètres manuels de fuseau horaire ou de modification des fichiers de configuration globale.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3