Tach!
In welcher Zeitzone speichert ein Server denn Daten, wenn keine festgelegt ist?
Speichern ist deine Angelegenheit. Berechnen meinst du sicher, wenn man die Nicht-UTC-Funktionen (ohne gm*) nimmt. (Wie der objektorientierte DateTime-Teil arbeitet habe ich keine Erfahrung.)
Siehe date_default_timezine_get().
Und woher weiß mein Skript dann, dass keine festgelegt ist?
Beantwortet sich aus dem Link.
Und woher weiß es, welche es für die bereits vorhandenen Daten benutzen muss, wenn ich in meinem Skript willkürlich eine festlege?
Du sagst es ihm. Vermutlich hast du PHP-üblich mit Timestamps gearbeitet, das sind immer die Anzahl der Sekunden seit 1.1.1970 und UTC (ohne Schaltsekunden). mktime() hat das für dich nach UTC umgerechnet und date() wieder zurück, wenn du beispielsweise diese Funktionen verwendet hast. Wenn du dich bisher nicht um die Zeitzonenenstellung gekümmert hast, dann ist da unter Umständen ein falscher UTC-Wert entstanden, den es auf dieselbe falsche Weise wieder zurückgerechnet hat, wobei der Fehler nicht auffiel. Da hst du dann genauso Pech und Reparaturbedarf wie wenn du mit falscher Zeichenkodierung Datenbankzugriffe durchführst. Apropos Datenbank, die hat natürlich auch eine Zeitzoneneinstellung.
dedlfix.