Geburtsdatum wird falsch gespeichert
Ich soll in einem Webshop mein Geburtsdatum hinterlegen. Doch egal was ich eingebe: Nach dem Speichern steht da stets 1. Januar 1970. Was läuft da falsch?
Ich sollte in einem Webshop mein Geburtsdatum hinterlegen. Aber was ich auch eingebe, nach dem Speichern steht da immer der 1. Januar 1970. Der Support meldet sich nicht. Was läuft da falsch?
Die Anwendung enthält einen gängigen Programmierfehler. Das Datum soll offenbar als sogenannter Unix-Timestamp gespeichert werden, ein weit verbreitetes Format zum Verarbeiten von Datums- und Zeitinformationen, das man sehr platzsparend speichern kann. Dabei zählt man einfach die Sekunden seit dem 1. Januar 1970 um 0 Uhr (Beginn der sogenannten Unix-Epoche) und speichert den Zahlwert in der Datenbank. Zur Darstellung gibt es in jeder Programmiersprache eine Funktion, die daraus wieder ein Datum macht. Im konkreten Fall scheint das eingegebene Datum nicht gespeichert zu werden – in der Datenbank steht also ein leerer Wert (NULL), der fälschlich als 0 interpretiert wird. Die Konvertierungsfunktion macht daraus den 1. Januar 1970.
Andere typische Darstellungsfehler durch sorglosen Umgang mit leeren Werten: GPS-Tracker landen auf der Weltkarte mitunter im Atlantik vor Ghana, bei 0°N und 0°E, weil die Entwickler den leeren Wert nicht abgefangen haben. Und aus einer fehlenden IP-Adresse wird gern mal 0.0.0.0. (jam)