Versuchs mal anstatt
<?php echo date("d.m.Y", $row->timestamp); ?>
mit folgendem:
<?php echo date("d.m.Y", (preg_replace('/([^0-9]*)/', '', $row->timestamp)+0) ); ?>
Dadurch gehst Du hin, erzwingst nur Zahlen in der Variable und addierst noch eine 0, falls der String sonst leer wäre, damit sollte die Variable nutzbar sein.
Die gleiche Methode musst Du für die Ausgabe der Uhrzeit auch noch anwenden.
Ich kann sonst nur empfehlen, generell bei jeder Daten ein und Ausgabe solche Sicherheitsmassnahmen zu machen. Bedenke auch, die Lösung behebt jetzt keine Schweinereien, die man mit der Dateneingabe anstellen kann, sondern korrigiert in diesem Falle nur blind die Datenausgabe.
Insbesondere solltest Du Dich mit den Themen Code injection und XSS auseinandersetzen. Dieses Problem hat nämlich die Ursache, dass die Zeit nicht korrekt in der Datenbank hinterlegt wurde, dies kann ein Programmierfehler sein, aber auch ein User, der bewusst versucht hat das System zu manipulieren - den entsprechenden Datenbankeintrag solltest Du Dir also auch anschauen.