„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie synchronisiert man Zeitzonen in PHP und MySQL?

Wie synchronisiert man Zeitzonen in PHP und MySQL?

Veröffentlicht am 17.11.2024
Durchsuche:863

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. Allerdings verwendet die PHP-Funktion date() 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 isoliert PHP.
  • SELECT CONVERT_TZ(now(), 'GMT', 'MET') gibt leere Ergebnisse zurück.
  • mysql> SET time_zone = 'Europe/Paris' löst einen Fehler in der MySQL-Konsole aus .

Letztendlich bleibt die MySQL-Zeitzone bestehen unverändert.

Lösung

Zeitzonen in PHP und MySQL synchronisieren, ohne manuelle Konsolenbefehle oder Änderungen in 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';");

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 der Änderung globaler Konfigurationsdateien.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3