Du bist nicht angemeldet (anmelden)
Seite 1
Datumsausgabe formatieren
Moin,
ich möchte ein Datum aus einer MySQL-Datenbank abfragen (Datentyp: DATE). Es soll aber nicht als 2008-10-25 angezeigt werden, sondern als 25.10.2008.
Hier der „Ur-Quellcode“:
Nun habe ich in einem anderen Forum den Trick mit explode gefunden:
Aber jetzt wird komischerweise „Array25.10.“ ausgegeben. Woran liegt das?
ich möchte ein Datum aus einer MySQL-Datenbank abfragen (Datentyp: DATE). Es soll aber nicht als 2008-10-25 angezeigt werden, sondern als 25.10.2008.
Hier der „Ur-Quellcode“:
<?php$result = mysql_query('SELECT * FROM apps WHERE id = ' . mysql_real_escape_string($_GET['id']));while ($row = mysql_fetch_array($result)){echo "[...]<div id=\"autor\">Letzes Update: " . $row['added'] . " </div>"[...];}?>
Nun habe ich in einem anderen Forum den Trick mit explode gefunden:
<?php$result = mysql_query('SELECT * FROM apps WHERE id = ' . mysql_real_escape_string($_GET['id']));while ($row = mysql_fetch_array($result)){echo "[...]<div id=\"autor\">Letzes Update: " . $zeit = explode('-', $row['added']);echo $zeit[2].'.'.$zeit[1].'.' . " </div>[...]";}?>
Aber jetzt wird komischerweise „Array25.10.“ ausgegeben. Woran liegt das?
Du kannst direkt in Mysql die Abfrage formatieren mit DATE_FORMAT
Siehe: http://dev.mysql.com/doc/refman/5.1/de/d...tions.html (
)
Siehe: http://dev.mysql.com/doc/refman/5.1/de/d...tions.html (
Das hatte ich auch schon gesehen, aber ich verstehe nicht, wie ich das anwende.
Könntest du das mal in meine Abfrage einbauen?
Könntest du das mal in meine Abfrage einbauen?
Aber wie bekomm ich jetzt die anderen Spalten in den Select-Befehl?
Das funktioniert nicht...
<?php$result = mysql_query('SELECT DATE_FORMAT('added', '%d.%c.%Y') as `datum`, iconurl, Name, version, Homepage, Autor FROM apps WHERE id = ' . mysql_real_escape_string($_GET['id']));while ($row = mysql_fetch_array($result)){echo "[...]<div id=\"autor\">Letzes Update: " . $row['added'] . " </div>[...]";}?>
Das funktioniert nicht...
Parse error: syntax error, unexpected T_STRING
Natürlich nicht, du musst die ' ' escapen.
Hast du mal ein PHP Tutorial gelesen bzw SelfPHP?
Würde dir als Einstieg mal empfehlen
Hast du mal ein PHP Tutorial gelesen bzw SelfPHP?
Würde dir als Einstieg mal empfehlen
Ups das hatte ich ganz übersehen 
Nun kommt zumindestens kein PHP-Error mehr, dafür wird jetzt das Datum gar nicht mehr ausgegeben.
Ich habe den Befehl mal direkt in der DB ausgeführt und da steht nun für _added NULL...
Nun kommt zumindestens kein PHP-Error mehr, dafür wird jetzt das Datum gar nicht mehr ausgegeben.
Ich habe den Befehl mal direkt in der DB ausgeführt und da steht nun für _added NULL...
SELECT DATE_FORMAT('added', GET_FORMAT(DATE,'EUR')) as _added, iconurl, Name, version, Homepage, Autor, BeschreibungDe FROM apps WHERE id = 1
Was soll denn der GET_FORMAT Befehl da drin?
oben stand doch schon wie es formatiert werden muss
Vielleicht solltest du mal genauer die Tutorials durchlesen und Beispiele ausprobieren, statt auf gut Glück irgendwas zu kombinieren
oben stand doch schon wie es formatiert werden muss
Vielleicht solltest du mal genauer die Tutorials durchlesen und Beispiele ausprobieren, statt auf gut Glück irgendwas zu kombinieren
Das hab ich von der mysql-Seite:
geht es nicht...
mysql> SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));Aber auch mit
→ '03.10.2003'
SELECT DATE_FORMAT('added', '%d.%c.%Y') as _added, iconurl, Name, version, Homepage, Autor, BeschreibungDe FROM apps WHERE id = 1
geht es nicht...
$date = explode('-',$row['added']);echo $date[2] . '.' . $date[1] . '.' . $date[0];
phloo schrieb am 25.01.09, 18:21 Uhr:Gar keine, das Datum wird einfach nicht angezeigt
Welche Fehlermeldung erhälst du denn?
caZpa schrieb am 25.01.09, 18:46 Uhr:Jetzt wird „Array25.12.2008“ angezeigt o.O
Quelltext in Zwischenablage kopieren
$date = explode('-',$row['added']);echo $date[2] . '.' . $date[1] . '.' . $date[0];
Editiert: 25.01.09, 20:09 Uhr
zeig mal den ganzen code//weil an dem 2zeiler kann es eigentlich nicht liegen...
<?php$result = mysql_query('SELECT * FROM apps WHERE id = ' . mysql_real_escape_string($_GET['id']));while ($row = mysql_fetch_array($result)){echo "<li><img id=\"icon\" src=\"" . $row['iconurl'] . "\" alt=\"" . $row['Name'] . "\" /><div id=\"name\">" . $row['Name'] . "</div><div id=\"version\">Version: " . $row['version'] . "</div> </li><li><div id=\"autor\">Autor: " . $row['Autor'] . " (<a href=\"" . $row['Homepage'] . "\">Homepage</a>)</div></li><li><div id=\"autor\">Letzes Update: " . $date = explode('-',$row['added']);echo $date[2] . '.' . $date[1] . '.' . $date[0] . " </div></li></ul><ul><li>Beschreibung:</li><li><div id=\"beschreibung\"><p>" . $row['BeschreibungDe'] . "</p></div></li>";}
Ich hoffe das hilft
<li><div id=\"autor\">Letzes Update: " . $date = explode('-',$row['added']);echo $date[2] . '.' . $date[1] . '.' . $date[0] . " </div></li></ul>
ich glaube so kannst du das nicht machen.
du verbindest da die strings mit einem . und darin dann wieder setzt du $date mit = auf explode(...)
Setze
$date = explode('-',$row['added']);
mal vor dein echo und im echo dann nur $date[1] ... usw
So wie du das machst, versucht gibt er auch „$date“ aus - und das kann echo nicht, sagt also, dass es ein array ist
äh viel zu kompliziert
strtotime ist einre funktion diedir aus einem datumsstring (z.b. auch 12.04.2009) einen timestamp rechnet den du mittels funktion date() formatieren kannst
$timestamp = strtotime($row['added']);<li><div id=\"autor\">Letzes Update: " . date('d.m.Y', $timestamp). " </div></li>
strtotime ist einre funktion diedir aus einem datumsstring (z.b. auch 12.04.2009) einen timestamp rechnet den du mittels funktion date() formatieren kannst
Patric schrieb am 25.01.09, 23:41 Uhr:
Quelltext in Zwischenablage kopieren
<li><div id="autor">Letzes Update: " . $date = explode('-',$row['added']);echo $date[2] . '.' . $date[1] . '.' . $date[0] . " </div></li></ul>
ich glaube so kannst du das nicht machen.
du verbindest da die strings mit einem . und darin dann wieder setzt du $date mit = auf explode(...)
Setze
Quelltext in Zwischenablage kopieren
$date = explode('-',$row['added']);
mal vor dein echo und im echo dann nur $date[1] ... usw
So wie du das machst, versucht gibt er auch „$date“ aus - und das kann echo nicht, sagt also, dass es ein array ist
Ahh es funktioniert
Danke!
Editiert: 27.01.09, 12:28 Uhr
Und gleich so aus der Datenbank „abholen“?: SELECT DATE_FORMAT(datum, '%d. %m. %Y') as neues_datum FROM table;
Hier gibts auch noch was! → http://davidwalsh.name/dates-mysql-php
