Heim  >  Artikel  >  Datenbank  >  Wie synchronisiert man Zeitzonen in PHP und MySQL?

Wie synchronisiert man Zeitzonen in PHP und MySQL?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 11:26:02228Durchsuche

How to Synchronize Timezones in PHP and MySQL?

Zeitzonen in PHP und MySQL synchronisieren

Sie entwickeln eine Anwendung, die das Speichern von Daten in MySQL mithilfe der PHP-Funktion date() erfordert. Es ist notwendig, diese Daten in MySQL mit NOW() zu vergleichen, um Zeitunterschiede zu berechnen. Die PHP-Funktion date() verwendet jedoch die in PHP definierte Zeitzone, während NOW() die im MySQL-Server konfigurierte Zeitzone verwendet.

Um dieses Problem zu beheben, haben Sie verschiedene Ansätze ausprobiert:

  • date_default_timezone_set('Europe/Paris') betrifft nur PHP.
  • date.timezone = "Europe/Paris" bleibt für PHP isoliert.
  • SELECT CONVERT_TZ(now(), ' GMT', 'MET') gibt leere Ergebnisse zurück.
  • mysql> SET time_zone = 'Europe/Paris' führt zu einem Fehler in der MySQL-Konsole.

Letztendlich bleibt die MySQL-Zeitzone unverändert.

Lösung

Zeitzonen in PHP und MySQL synchronisieren, ohne manuelle Konsolenbefehle oder Änderungen in php.ini:

PHP:

<code class="php">define('TIMEZONE', 'Europe/Paris');
date_default_timezone_set(TIMEZONE);</code>

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>

Dieser Ansatz stellt sicher, dass sowohl PHP als auch MySQL dieselbe Zeitzone verwenden, wodurch Diskrepanzen bei der Datumsspeicherung und dem Datumsvergleich vermieden werden. Darüber hinaus entfällt die Notwendigkeit manueller Zeitzoneneinstellungen oder Änderungen globaler Konfigurationsdateien.

Das obige ist der detaillierte Inhalt vonWie synchronisiert man Zeitzonen in PHP und MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn