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:
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.
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