Hallo Kalle,
Zur Zeitumrechnung von UTC auf MESZ muss ich also wissen, welches Betriebssystem der Server hat? Bei Debian muss ich eine Stunde hinzurechnen, bei Win2000 nicht.
Hä? Verstehe ich nicht, beschreibe Dein Problem doch bitte nochmal.
filemtime() ist in PHP ein Wrapper auf die entsprechenden Systemfunktionen um das Modifikationsdatum einer Datei zu erhalten. filemtime() gibt Dir *immer* einen POSIX-Timestamp zurück. Ein POSIX-Timestamp ist definiert als die Anzahl an Sekunden (Schaltsekunden nicht berücksichtigt) seit dem 1.1.1970 00:00:00 UTC. (Ein Timestamp ist nicht "in UTC", er ist lediglich eine absolute Zahlenangabe seit (!) einem Zeitpunkt, der in UTC definiert ist, Du kannst Dir aber auch gerne die vollkommen äquivalente Definition merken, die besagt, dass ein POSIX-Timestamp die Anzahl an Sekunden seit dem 1.1.1970 01:00:00 MEZ angibt).
Wenn Du also eine Datei unter einem beliebigen Betriebssystem auf dem PHP läuft zu einem bestimmten Zeitpunkt modifizierst, dann muss PHPs filemtime() Dir die Anzahl an Sekunden zwischen dem Zeitpunkt und dem Referenzzeitpunkt von Timestamps zurückgeben. Immer. Alles andere wäre ein Bug in PHP [*].
Das heißt:
echo date("Y-m-d H:i:s", filemtime ('datei.txt'));
sollte Dir *immer* die gleiche Zeit liefern, wie sie auch die Betriebssystemutilities für diese Datei liefern.
Wenn es nicht passt, erkläre doch mal bitte genau und detailliert, was Du machst, was daraufhin passiert und warum Du das Verhalten als Fehler ansiehst.
Viele Grüße,
Christian
[*] Ausnahme wäre höchstens gerade im Moment der Zeitumstellung, da kann es unter Windows u.U. zu Problemen kommen, weil die Lokalzeit da nicht unbedingt eindeutig ist und Windows das dummerweise in Lokalzeit speichert. Der angezeigte (!) Wert sollte aber trotzdem übereinstimmen.
Viele Grüße,
Christian