Ich habe den Fehler jetzt endich gefunden. Ich hatte mir den Timestamp in JS mit getTime() erstellt, diesen per Ajax an php gesendet, wo es in eine DB geschrieben wurde, welche von einem anderen php-Skript ausgelesen wurde, um den Timestamp mit date() wieder in eine Datum zu wandeln.
Der größere Fehler von 2en war, dass getTime() kein UNIX Timestamp ist, sprich, getTime() liefert die Milisekdunden seit dem 1.1.1970. Der UNIX Timestamp, der von php verwendet wird, benutzt jedoch hingegen nur Sekunden, was auch in date() verwendet werden muss.
Der 2. Fehler war, dass mein php auf UTC läuft, wir aber in UTC+01:00 leben. Jtzt läuft es auf jeden Fall.