Es macht keinen unterschied ob du "crbirthday" schreibst oder "birthday".
Ich würde es so lassen, wie ich es gemacht habe.
Für die Jahreszahlen ließe sich auch eine "Schleife" erstellen, nur wird eine solche Liste recht lang.
Das mit den Zahlen ist ganz einfach:
Es wird alles nur durchgeführt wenn "$cr_day"
und "$cr_month" befüllt sind.
Dann geschieht folgendes:
Ist die Länge von "$cr_year" gleich "4", enthält also das Jahreszahlfeld vier Zahlen, wird es direkt übernommen.
Wenn nicht, muss es zumindest zwei Zahlen enthalten.
Enthält es zwei Zahlen, wird "19" davor geschrieben, enthält es keine zwei Zahlen, wird automatisch "0000" eingefügt.
Mittels "-" geht es zum nächsten Abschnitt.
Ist "$cr_month" kleiner als "10", wird eine "0" davor geschrieben.
Ist es größer oder gleich "10" wird es übernommen, wie es übertragen wurde.
Der weitere Abschnitt ist wieder mit "-" getrennt.
Ist "$cr_day" kleiner als "10", wird eine "0" davor geschrieben.
Ist es größer oder gleich "10" wird es übernommen, wie es übertragen wurde.
Der Grund ist das Datumsformat: "XXXX-XX-XX".
Dies ist die Form, die wir für die Datenbank benötigen.
Die SQL-Spalte "birthday" hat den Datentyp "date" und jener verlangt diese Form der Darstellung.