Datum über ein Formular in dei DB einfügen

xtratz

Gesperrt
Hallo Leute,

ich habe das Problem das ich ein Datum über ein Formular in die DB einfügen möchte.
Grundsätzlich kein Problem.

Aber da die Spalte für das Datum das Format "date" hat kann ich das Datum auch nur so eingeben damit es korrekt gespeichert wird. z.b. 2006-10-10

Ich möchte das Datum aber ganz normal eingeben also 10.10.2006.

Gibt es da eine einfache Möglichkeit

Ich hoffe Ihr versteht was ich meine.

Gruss und Danke
 
Ja ist eigentlich kein Problem

mach das ganze doch so:

PHP:
$tmp = explode(".",$_POST['datum']);

$date = $tmp[2] ."-". $tmp[1] ."-". $tmp[0];

in $date steht dann dein gewünschtes Format.
explode zerlegt einen String bei dem Trennzeichen (hier der Punkt) und packt jedes Element (10, 10 und 2006) in ein Array ($tmp).
 
Zuletzt bearbeitet:
Ich muss ja ehrlich gestehen, dass ich lieber mit einem Timestamp arbeite, da man dort das "komplette" Datum hat und es nur formatieren muss...

Nützliche Funktionen dafür sind:
PHP mktime()
PHP date()
MySQL from_unixtime
 
Den Timestamp würde ich auch empfehlen.

Nur wenn er es über ein Formularfeld macht. Dann geht das nicht direkt.
Er könnte natürlich ein Datum in den Unix Timestamp konvertieren und dann speichern.
 
Friesi hat gesagt.:
PHP:
$tmp = explode(".",$_POST['datum']);

$date = $tmp[2] ."-". $tmp[1] ."-". $tmp[0];

Ist zwar alles korrekt, aber es wäre doch deutlich besser, wenn du schon explode benutzt, die Daten auch wieder mit implode zu verknüpfen. ;)
 
Ja aber hast du mit implode auch die Reihenfolge die du brauchst?
Müsstest also erst das Array "sortieren"

Wenn er: 10.10.2006 zu 10-10-2006 haben will, dann kann man das prima mit implode machen.
Aber sonst musst du das Array doch erst ändern.
 
Zuletzt bearbeitet:
Iplode() liest dir die Stringstücke in ein indiziertes Array. Wo ist das das Problem anhand der Indizes dieses Array rückwärts zu sortieren? Seh ich gerade den Wald vor lauter Bäumen nicht?
 
Der Wald ist groß ;)

Deine Idee/Methode
PHP:
// Input 10.10.2006
$tmp = explode(".","10.10.2006");
// Output: 10-10-2006 gewünscht: 2006-10-10 
$date = implode("-", $tmp);

So müsste sie wenn richtig sein mit implode:
PHP:
// Input 10.10.2006
$tmp = explode(".","10.10.2006");
// Array umdrehen
$tmp = array_reverse($tmp);
// Output: 2006-10-10 gewünscht: 2006-10-10
$date = implode("-", $tmp);

Könnte man so machen, hat man aber eine Zeile mehr code :)
 
Zuletzt bearbeitet:
PHP:
// Output: 2006-10-10 gewünscht: 2006-10-10
$date = implode("-", array_reverse(explode(".", "10.10.2006")));

Zeilen sind relativ. ^^
Im Endeffekt ist es auch egal. Bloß wenn man die Möglichkeit hat eine Funktion einzuführen, sollte man doch aus didaktischen Gründen auch gleich das Kontrair, soweit möglich, aufführen.
 
Zurück