Maison > base de données > tutoriel mysql > Comment synchroniser les fuseaux horaires en PHP et MySQL ?

Comment synchroniser les fuseaux horaires en PHP et MySQL ?

Susan Sarandon
Libérer: 2024-11-03 11:26:02
original
301 Les gens l'ont consulté

How to Synchronize Timezones in PHP and MySQL?

Synchronisation des fuseaux horaires en 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 en 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é de 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 en PHP et MySQL sans commandes manuelles de la console ni modifications dans php.ini :

PHP :

<code class="php">define('TIMEZONE', 'Europe/Paris');
date_default_timezone_set(TIMEZONE);</code>
Copier après la connexion

MySQL :

<code class="php">$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins < 0 ? -1 : 1);
$mins = abs($mins);
$hrs = floor($mins / 60);
$mins -= $hrs * 60;
$offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);

// Assuming an existing DB connection named $db
$db->exec("SET time_zone='$offset';");</code>
Copier après la connexion

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.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal