Sommerzeitreparatur in WordPress

Bei einem anderen Blog von mir hatte ich in der Konfiguration als Zeitzone UTC+1 eingegeben, was ja zunächst erst einmal nicht ganz falsch ist, aber leider zur Folge hat, dass ca. ein halbes Jahr (nämlich die gesamte Sommerzeit lang) alle Einträge um eine Stunde falsch angezeigt werden.

Dummerweise hatte ich nicht gesehen, dass man im entsprechenden Konfigurationsdialog statt konkreten Zeitdifferenzen auch Städtenamen angeben kann, woraufhin WordPress bei Bedarf (vulgo in der Sommerzeit) automatisch die Differenzen korrigiert.

Ok, Einstellung wurde von mir heute korrigiert, aber nun habe ich bereits 1,5 Jahre Postingmasse mit um eine Stunde verschobenem Zeitstempel.

Also rein in die WordPress-Datenbank. Das MySQL-Kommandozeileninterface ist zwar vergleichsweise grausam – ich würde immer noch gerne denjenigen treten, der es für eine gute Idee hielt, mit STRG-C das gesamte Interface abzuschießen – reicht aber für die folgenden Operationen.

Relevant sind nur die Tabellen, in denen Datumsangaben gespeichert sind, das sind: wp_posts und wp_comments. Die interessanten Attribute sind post_date, post_modified und comment_date.

Da diese Werte bei mir jeweils um exakt eine Stunde zu niedrig lagen, reichte also als Reparatur (Beispiel für eine Sommerzeit – bei Bedarf für weitere Jahre wiederholen):

update wp_posts
set post_date = DATE_ADD(post_date, INTERVAL 1 HOUR),
post_modified = DATE_ADD(post_modified, INTERVAL 1 HOUR)
where post_date > '2012-03-25 02:00:00'
and post_date < '2012-10-28 03:00:00';

update wp_comments
set comment_date = DATE_ADD(comment_date, INTERVAL 1 HOUR)
where post_date > '2012-03-25 02:00:00'
and post_date < '2012-10-28 03:00:00';

Netterweise speichert WordPress zu den genannten Attributen die gleichen Werte nochmal bezogen auf GMT in den selben Tabellen in den separaten Attributen post_date_gmt, post_modified_gmt und comment_date_gmt ab. Falls man also seine Daten kaputtspielt oder aber eine generische Reparaturfunktion basteln will, bekommt man hier saubere Ausgangsdaten.

Kleine Anmerkung noch: im Randbereich (also für Einträge, die genau in der jeweils umgestellten Stunde liegen) müsste man die obige Funktion nochmal kritischer angucken - bei mir lagen die Einträge hinreichend weit entfernt.

Im Übrigen bin ich der Meinung, dass die Sommerzeit abgeschafft werden sollte...

One thought on “Sommerzeitreparatur in WordPress”

  1. Hach, dieses Geheule. Ja, die Idee mit Strg-C ist nicht so die allerschönste, bin die letzten Tage auch ab und zu mal in die Falle getappt, aber sowohl die mysql-Shell als auch die Shell drumrum haben eine History. Was auch immer man da versehentlich StrgC-t hat, ist also quasi nur ein CursorUp+Enter+CursorUp entfernt. Da fallen mir wesentlich gruseligere Userinterfaces ein…
    Der Vollständigkeit halber: ja, eventuell hätte auch ich in Erwägung gezogen, sowas mal in Ordnung zu bringen. Vermutlich aber auch nicht. Denn:

    Was interessiert mich mein Geschwätz von gestern?*

    *) Ich bin mir durchaus bewusst, dass deine Cato-Referenz unumstößlicher ist als meine Adenauer-Anleihe…

Comments are closed.