Datum umformatieren

meilon

Erfahrenes Mitglied
Hi,
ichb habe mir ein eigenes Gästebuch geschrieben. Dazu werden in eine MySQL Datenbank Daten gespeichert und dann auf der Gästebuchseite wieder ausgegeben (normal eigentlich :-) ). Jetzt lass ich unter anderem mit dem MySQL Query das Aktuelle Datum mit der jetztigen Zeit eintragen. Die Zelle wird wie folgt gefüllt: 2004-04-18 22:45:01
Nun möchte ich, dass da 18.04.2004, 22:45:01 steht. Wie Splitte ich die einzelnen Datumsabschnitte auf, um sie dann zu ersetzen:
PHP:
// das aufsplitten hier
$reihe['Datum']=$tag.'.'.$monat.'.'.$jahr.', '.$zeit;
Oder läst sich der query datetime bearbeiten?

mfg
Klink
 
Also ich mache das immer anders ich schreibe in die Tabelle
PHP:
time()
und formatiere das denn einfach mit
PHP:
$date=date("d.m.Y H:i:s",$row['date'])
um, erscheint mir einfacher als das Datum mit substr() (PHP) zu zersplitten oder mit DATE_FORMAT() (SQL) zuformatieren. Ist halt weniger Schreibaufwand. :-)
 
sry, aber irgendwie habe ich das jetzt nicht verstanden. Soll jetzt, wenn der Gästebucheintrag gemacht wird, im Qery
Code:
Insert Into gaestebuch (..., Datum) Values (..., time())
stehen? Wie soll ich das mit dem Datum gemacht werden?

mfg
Klink

PS: Tatsächlich habe ich Now() benutzt, also im original...
 
Ja der Query ist schonmal richtig, nur das du:
PHP:
"Insert Into gaestebuch (..., Datum) Values (..., ".time().")"
schreiben musst anstatt :
PHP:
"Insert Into gaestebuch (..., Datum) Values (..., time())"

weil time() eine PHP Funktion ist. Und denn formst du das nur noch um:

PHP:
$date=date("d.m.Y H:i:s",$row['Date']) //<----- ist jetzt zum Beispiel 20.04.2004 18:17
 
Welchen Datentyp besitzt denn deine Datumsspalte in der Tabelle? DATETIME? INT? TIMESTAMP?
 
also hier mein aktuelles Query
PHP:
$sql="INSERT INTO gaestebuch(ID,Name,Email,Homepage,ICQ,Inhalt,Datum) VALUES('$ID','$Name','$Email','$Homepage','$ICQ','$Inhalt',Now())";
Die Spalte "Datum" hat den Typ datetime.

mfg
Klink
 
Jetzt stellt sich noch eine Frage willst du deine alten Einträge behalten, dann musst du alle alten umformen. Das ist aber nicht schwer kann man gut mit explode() und implode() machen.

MfG
 
So jetzt bin ich wieder zurück vom Feuerwehr Dienst Ja, es müssen alte einträge umformatiert werden. Wie stelle ich das mit explode() und implode() machen? Und wie müssen jetzt die SQL Querys sein und wie muss der Typ für die Spalte Datum lauten?

mfg
Klink
 
Eine Explode Variante wäre folgende:
PHP:
$original_datum = '2004-04-18 22:45:01';

list($date, $time) = explode(' ', $original_datum); //$date ist jetzt nur das Datum, $time die Uhrzeit
list($jahr, $monat, $tag) = explode('-', $date); //das Datum wird in Tag, Monat und Jahr zerlegt...

//...und hier wieder zusammengefügt
$neues_datum = $tag . '.' . $monat . '.' . $jahr . ', ' . $time; //ergibt 18.04.2004, 22:45:01

Die Spalten in der Datenank würde ich dann vom Typ VARCHAR anlegen.

Eine viel bessere Möglichkeit wäre allerdings, wenn du das Datenbankfeld als INT anlegst und dort den UNIX-Timestamp speicherst. Damit kannst du dann auch ganz einfach Rechnungen durchführen und das anschließende Formatieren ist durch date() oder durch MySQL selbst (DATE_FORMAT()) ein Kinderspiel.
 
Zurück