MySQL Datenbank & PHP: Zeitzone ändern | 1und1 Strato

80de3dff22394b978cdd7aacade30535

Wie ändere ich die Zeiteinstellungen einer MySQL-Datenbank, wenn mein Webspace sich bei einem Hoster wie IONOS, STRATO oder ALL-INKL befindet? Diese Frage haben sich bestimmt schon viele gestellt. Vor allem dann, wenn ein funktionierendes PHP oder Pythons-Script Daten aus einer Tabelle holt, die völlig veraltet sind.

Natürlich könnte man die Variable, die die aktuelle Zeit enthält, je nach Sommer oder Winterzeit um eine Stunde erhöhen oder verringern, doch das ist wahrscheinlich nur eine Notlösung für dich. Denn bei einer dauerhaften Lösung möchtest Du den Beginn der Sommerzeit nicht im Terminkalender eintragen und zu gegebener Zeit dein Script anpassen.

Die Sache mit den Zeitzonen und deinem Server können eine knifflige Angelegenheit werden, denn nicht jede Methode führt bei deinem Anbieter/Server zum Erfolg. Was bei einem eigenen Server klappt, haut beispielsweise nicht unbedingt bei einem Webhosting-Paket hin. Doch zum Glück gibt es Bücher und das Internet.

Die globale Zeitkonfiguration des Servers kann nicht geändert werden. Es kann jedoch eine andere Zeitzone (time zone) eingestellt werden.

Zeitzone für Datenbank über phpMyAdmin einstellen

firefox 2022 11 13 14 11 31

Rufe deine Datenbank auf. Im Menü „SQL“ (oben) gibt Du den folgenden Befehle ein:

SET time_zone = '+01:00';

ACHTUNG: SET time_zone = ‚+01:00‘ ändert nur die Zeitzone für die aktuelle MySQL-Sitzung. Nach Beendigung der aktuellen Sitzung wird die Zeitzone auf die Standardzeitzone des Servers zurückgesetzt.

BEACHTE: Nicht jeder Hoster unterstützt diesen Befehl.

Zeitzone im PHP-Script ändern

Aber meistens muß keine Zeitzone in der Datenbank verändert werden. Oft liegt ein PHP-Problem vor. Die Funktion:

$datum = date("Y-m-d H:i:s")

liefert einfach eine falsche Zeit und speichert diese Angabe in der MySQL-Datenbank. Du denkst dann: „Oje, meine MySQL-Tabelle lebt in einer anderen Zeit!“.

Abhilfe: lege die richtige Zeitzone mit folgendem Befehl fest. Vorzugsweise BEVOR Du eine Datums-Funktion nutzt.

date_default_timezone_set('Europe/Berlin');