• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

MySQL timestamp gibt Lokal andere Zeit aus als auf Server

Bexsta

New member
Hallo..,

folgendes Problem: seid der Server Umstellung bzw. dem Minor Upgrade MysSQL 5.5.34 werden die in der MySQL DB gespeicherten Termine bzw Timestamps nicht mehr wie gewohnt ausgegeben.
Auf dem Server werden jeweils 2h weniger angezeigt!!!

Lokal: 1407967200 = 14.08.2014 - 00:00
Server: 1407967200 = 13.08.2014 - 22:00

Lokal: PHP: 5.4.22
MySQL: 5.5.34

Server: PHP: 5.5.3
MySQL: 5.5.34

Die einzigste vedachte deb ich hatte war das die Serverzeit nicht korrekt ist, der Admin hat dies allerdings nicht bestätigt?

Könnte es evtl an einer UTC Veränderung liegen? Hat ein Server überhaupt eine UTC bzw. könnte es daran liegen?

Ich bin derzeit ratlos und vielleicht hat jemand ein ähnliches Problem gehabt und weiss wie man da rangeht!?

Freue mich über jede Sinnvolle Antwort!

LG
Bexsta
 
Zuletzt bearbeitet von einem Moderator:
Kommt auf den Datentyp an. Timestamp ist nicht Zeitzonen-behaftet (also immer UTC), Datetime schon (d.h. falls der Server einen Timezone-Offset eingestellt hat, ist die Zeit um den Offset "verschoben")
 
Lass' dir in PHP doch einfach mal die Zeitzone, die eingestellt ist, ausgeben. Wo steht denn der Server?
 
Kommt auf den Datentyp an. Timestamp ist nicht Zeitzonen-behaftet (also immer UTC), Datetime schon (d.h. falls der Server einen Timezone-Offset eingestellt hat, ist die Zeit um den Offset "verschoben")

Nutze eigentlich ausschließlich Timestamp..ich könnte mir jetzt auch nicht erklären wo plötzlich der OffSet herkommen sollte? Vor der Umstellung gab es ja auch keinen!
Außer der Server ist umgezogen :p

Lass' dir in PHP doch einfach mal die Zeitzone, die eingestellt ist, ausgeben. Wo steht denn der Server?

Da es ein privater Server ist und der Admin aus Deutschland kommt, gehe ich mal von Deutschland aus.

PHP sagt Zeitzone UTC!? Allerdings müßte doch dann die Zeit korrekt sein, ist sie aber nicht.

siehe http://fahrschule-allroad.de/test.php

PHP:
echo date('d.m.Y - H:i')." <br />";

echo"Eingestellte Zeitzone: ",
date_default_timezone_get();
 
Zuletzt bearbeitet:
Füge doch das mal am Anfang deiner PHP-Testdatei ein:
PHP:
<?php
//Serverzeit auf dt. Zeitzone umstellen
ini_set('date.timezone', 'Europe/Berlin');
 
Füge doch das mal am Anfang deiner PHP-Testdatei ein:
PHP:
<?php
//Serverzeit auf dt. Zeitzone umstellen
ini_set('date.timezone', 'Europe/Berlin');

Ahaaa..aber wieso musste man bisher noch nie die zeitzone angeben?
Hat sich was in PHP verändert?

Aber trotzdem schonmal vielen Dank
 
Zuletzt bearbeitet:
Ich meine das Problem gefunden zu haben!?

Bei der Verwendung der date() function spuckt PHP jetzt immer folgende Warning Message aus:

PHP:
date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.

Habe dazu folgendes im Web gefunden:

HTML:
You probably need to put the timezone in a config line in your php.ini

You should have a block like this in your php.ini :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin

If not, add it ( replacing the timezone by yours ). After configuring, make sure to restart httpd (service httpd restart).

Ich denke das ist des Rätsels Lösung!

LG
Bexsta
 
Habe dazu folgendes im Web gefunden:

HTML:
You probably need to put the timezone in a config line in your php.ini

You should have a block like this in your php.ini :

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin

Nur noch so zur Info, das war exakt dasselbe, was ich mit der ini_set erreicht habe...
Drei Möglichkeiten:
-per .htaccess (global)
-per php.ini (global)
-per ini_set (lokal für Skript)
 
Zurück
Oben