"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment synchroniser les fuseaux horaires en PHP et MySQL ?

Comment synchroniser les fuseaux horaires en PHP et MySQL ?

Publié le 2024-11-17
Parcourir:241

How to Synchronize Timezones in PHP and MySQL?

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 :

  • date_default_timezone_set('Europe/Paris') affecte uniquement PHP.
  • date.timezone = "Europe/Paris" reste isolé pour PHP.
  • SELECT CONVERT_TZ(now(), 'GMT', 'MET') renvoie des résultats vides.
  • mysql> SET time_zone = 'Europe/Paris' provoque une erreur dans la console MySQL .

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.

Dernier tutoriel Plus>

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