Seite 1 von 1

Datum aller Posts verändern

Verfasst: 21.01.2012 12:33
von qevdo
Hallo,

meine Severzeit war leider falsch eingestellt und ging um einiges vor. Jetzt geht wieder alles richtig, doch viele Posts liegen nun in der Zukunft.
Nun wollte ich fragen, ob es eine Möglichkeit gibt, alle Beiträge um x Tage vom Datum her zu 'verschieben' bzw. zu verändern.
Wäre sehr dankbar! Übrigens liegen nicht nur die Posts in der Zukunft, sondern auch alle anderen Angaben, die mit dem Datum zu tun haben wie z.B. Registrierung, letzte Aktivität, Wer ist Online-Liste.

Danke im Voraus! :)

Re: Datum aller Posts verändern

Verfasst: 21.01.2012 14:58
von Miriam
Falls du ALLE Zeiten überbügeln willst:
[Hier 60 Sek. * 60 Min * 24 Std. * 10 (Tage) = UnixZeit für 10 Tage, die Zeit ist hier Sekunden basiert]

DB Backup VORHER nicht vergessen!

Code: Alles auswählen

update phpbb_posts set post_time =  post_time - 60 * 60 * 24 * 10;
dasselbe mit den Topics:

Code: Alles auswählen

UPDATE phpbb_topics SET topic_time = topic_time -60  * 60 * 24 * 10;
und den User reg. Zeiten:

Code: Alles auswählen

UPDATE phpbb_users SET user_regdate = user_regdate -60 * 60 * 24 * 10;
wahrscheinlich musst du dann auch den Inhalt der Session Tabelle löschen:

Code: Alles auswählen

DELETE FROM phpbb_sessions WHERE 1;
Wenn du die Codes 4 mal ausführst sind die Zeiten um 4 * 10 = 40 Tage zurückgesetzt.

Das wäre es zum Ersten.

Wahrscheinlich musst du auch die Log-Zeiten für die administrativen Logs im ACP anpassen. Und nicht zu vergessen: Das Board Installationsdatum, die Datumsangaben für die PMs, die Forum Last Post Time.... und und und.

Wenn du weisst, ab wann die Zeit vor ging, kannst du die Queries mit der WHERE Clause einschränken.

z.B: die Uhrzeit ging bis zum 31.12.2011, 15:00 richtig; es müssen also Zeiten ab dem 31.12.2011, 15:00 eingestellt werden -> Timestamp für das Datum: 1325365200. Finde den Timestamp für das Datum hier heraus: Klick.

Code: Alles auswählen

update phpbb_posts set post_time =  post_time - 60 * 60 * 24 * 10 WHERE post_time > 1325365200;
So viel zur Theorie.

Beste Vorgehensweise wäre imho herauszufinden, ab wann die Uhr um wieviel falsch ging.

Beispiel:
  • Datum: 10.10.2010, 12:00 -> Timestamp: 1286730000;
    Zeit, um die die Uhr ab dann vorgeht (Offset) 2 Tage, 13 Minuten, 10 Sekunden -> 2 * 24 * 60 * 60 + 13 * 60 + 10 = 173590

    Folgt:

    Code: Alles auswählen

    update phpbb_posts set post_time =  post_time - 173590 WHERE post_time > 1286730000;
    [/b]

Re: Datum aller Posts verändern

Verfasst: 21.01.2012 16:02
von qevdo
Super! Hat funktioniert! Danke sehr.