Datum wird nicht richtig ausgegeben

H

hein

Guest
bei nachfolgendem php code werden die Daten richtig sortiert allerdings bekomme ich das Datum so:

2010-03-01

angezeigt.

Wie kann ich es so:

01.03.2010

anzeigen lassen?

<?php
$abfrage = "SELECT *, DATE_FORMAT(vdatumb, '%d.%m.%Y ab %H:%i') AS vdatumb1 FROM login ORDER BY vdatumb ASC";
mysql_query("SET NAMES 'utf8'");
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{

echo "
$row->titel</font><p>
$row->info</font><p>
$row->vdatumb ";
}
?>

------------------------------------------------------------------------
Bei nachfolgendem php code sind alle Daten super richtig nach Datum sortiert, aber sortiert nur nach den ersten Zahlen, also nach dem Tag so:

02.03.2010
07.04.2010
08.03.2010

Das Datum sollte aber so:

02.03.2010
08.03.2010
07.04.2010

sortiert sein?
<?php
$abfrage = "SELECT *, DATE_FORMAT(vdatumb, '%d.%m.%Y ab %H:%i') AS vdatumb FROM login ORDER BY vdatumb ASC";
mysql_query("SET NAMES 'utf8'");
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{

echo "
$row->titel</font><p>
$row->info</font><p>
$row->vdatumb ";
}
?>

Wäre super wenn jemand die Problemlösung kennt.
In meiner sql DB-Tabelle bzw. im Feldnamen vdatumb habe ich das Datum als date gespeichert.
 
ich seh zwar nicht wirklich einen Unterschied bei den beiden Codes...
blink.gif


Aber ich würde an Deiner Stelle die erste richtig sortierte Abfrage nehmen und dann in der Ausgabe entsprechend umformatieren. Dazu das Ergebnis anhand der "-" in einzelne Teile trennen und dann wie gewünscht zusammenstellen..
 
in einer steht ......vdatumb1 drin und in der anderen nur vdatumb ohne die 1, warum das einen derartigen unterschied macht weis ich auch nicht...

Danke für den Tip, aber ich kann derzeit leider mit derlegen und wieder zusammenführen nicht soviel anfangen, bin halt total neu in php.
 
Erstmal haste einen grundlegenden Fehler im PHP drin, welche ich gerne als Kodierungkrücke bezeichne. Aktuelle PHP- und MySQL-Versionen unterstützen mysql_set_charset(), alles was das nicht unterstützt ist bereits so sehr veraltet, dass es nicht mehr verwendet werden sollte.


Eine Lösung könnte aber sein:

CODE <?php

$abfrage = "SELECT titel, info, DATE_FORMAT(vdatumb, '%d.%m.%Y') AS vdatumb1 FROM login ORDER BY vdatumb ASC";
mysql_set_charset('utf8');
$ergebnis = mysql_query($abfrage);
while ( $row = mysql_fetch_object($ergebnis) )
{
   echo "<p>{$row->titel}</p><p>{$row->info}</p><p>{$row->vdatumb1}</p>";
}

?>


vbatumb1 ist der Alias für das gewünschte Datumsformat und wird aus vdatumb gebildet DATE_FORMAT(vdatumb, '%d.%m.%Y') AS vdatumb1
vdatumb sollte als DATE die richtig Reihenfolge sortieren, daher ORDER BY vdatumb ASC


So sollte das Datum richtig sortiert sein, und auch richtig formatiert, denn DATE hat das Format YYYY-MM-DD (siehe Webmaster FAQ - Mysql Datentypen Tutorial - Mysql Datenbanken)
 
wow, super, es hat funktioniert, ich dachte zwar ich hätte das schon probiert, aber anscheinend hab ich das nicht.

Ich danke dir, da hab ich jetzt 2 volle Tage rumgebastelt.
 
Zurück
Oben