Datum ausgeben php/mysql

räkor

Grünschnabel
Hi,
ich als php-Anfänger hatte mich in das php-Gästebuch tut von Nocturn eingearbeitet und es nach einiger Zeit auch zum Laufen bekommen. Bleibt in meinem script nur noch ein Problem:
Ich bekomme das Datum auf der website nicht angezeigt. Die Ausgabe zeigt nur:

geschrieben: - // :

und das hier ist das echo:

echo "<font color=\"navy\">generated:</font> $ndate[weekday] - $ndate[mday]/$ndate[mon]/$ndate[year] $ndate[hours]:$ndate[minutes]";


hat jemand ne Idee, was ich probieren könnte? Ich benötige eigentlich nur das Datum, keine Uhrzeit. Vielen Dank im voraus.
 
Ganz allgemein fehlen Anführungszeichen, also so:
PHP:
$ndate["weekday"]

Ob das das Problem löst weis ich nicht. Interessant wäre es zu sehen, wie das Array erzeugt wird, poste doch bitte genau diesen Abschnitt.
 
Hallo,
vielen Dank schonmal für den Tip. Die Anführungszeichen werde ich gleich mal einfügen. Hier erstmal der Abschnitt mit dem Array:

<?php
$sqlkommando = "SELECT * FROM guestbook ORDER BY id DESC";
// Auf gut deutsch: Nimm aus allen feldern in table 'guestbook' die Daten und sortiere sie absteigend nach 'id'
// Hier haben wir die Wahl zwischen ASC und DESC als Sortierungsreihenfolge
// ASC = von 1-9 und A-Z
// DESC = von Z-A und 9-1
// da 'id' eine zeitangabe beinhaltet werden die felder hier absteigend nach datum sortiert, der neuste eintrag steht also
// folglich ganz oben

$sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error()); // $sqlanfrage auf das Kommando:" 'sqlkommando' ausfuehren" setzen
// bei misserfolg beenden und fehlermeldung ausgeben

while($daten = mysql_fetch_object($sqlanfrage)) // Solange wie daten ausgelesen werden können sollen
{ // sie in das Objekt '$daten' geladen und die folgende
// schleife ausgegeben werden
$datum = getdate($daten->id); // Datum aus 'id' konvertieren und in das 'datum' array packen

echo "<font color=\"navy\">message by: ". stripslashes($daten->name) ."\n<br></font>"; // PHP sonderzeichen entfernen und name ausgeben
echo "<font color=\"navy\">email: <a href=\"mailto:</font>".stripslashes($daten->email)."\">".stripslashes($daten->email)."</a>\n<br>";
echo "<font color=\"navy\">homepage:</font> ".stripslashes($daten->homepage)."\n<br>";
echo "<font color=\"navy\">generated:</font> $ndate[weekday] - $ndate[mday]/$ndate[mon]/$ndate[year] $ndate[hours]:$ndate[minutes]"; // Datum ausgeben (Englisch siehe Moartel Tutorial)
echo "<br>";
echo "<font color=\"black\">comment: <br>";
echo nl2br(stripslashes($daten->message)); //nl2br = Zeilenumbrüche in HTML-Umbrüche (<br>) umwandeln
echo "\n<br><br>\n</font>";
}
?>
 
Ja, entschuldigung, in dem Script wird die getdate()-Funktion verwendet, da müssen die Anführungszeichen natürlich weg.

PHP:
$datum = getdate($daten->id);
Du musst der Funktion einen Timestamp übergeben. Existiert der in deiner Datenbanktabelle?
So etwa:
PHP:
$ndate = getdate($daten->timestamp);
Du musst dich übrigens entscheiden ob du $datum oder $ndate verwendest, sonst klappt das natürlich nicht.

Also entweder
PHP:
$ndate = getdate($daten->timestamp);
echo "<font color=\"navy\">generated:</font> $ndate[weekday] - $ndate[mday]/$ndate[mon]/$ndate[year] $ndate[hours]:$ndate[minutes]";
oder
PHP:
$datum = getdate($daten->timestamp);
echo "<font color=\"navy\">generated:</font> $datum[weekday] - $datum[mday]/$datum[mon]/$datum[year] $datum[hours]:$datum[minutes]";

ps: Verwende bitte die Code-Formatierung wenn du welchen postest, das kann man sonst so schlecht lesen.
 
Zuletzt bearbeitet:
Hallo nochmal,
genial, Dein Tip funktioniert fast schon perfekt: Ich habe also

PHP:
$datum = getdate($daten->id);

gegen

PHP:
$ndate = getdate($daten->timestamp);

ausgetauscht. Und siehe da, ich bekomme ein Datum:

generated: Thursday - 1/1/1970 1:0

Das dürfte das Unix datum sein,oder? Hast Du evtl. noch eine Idee wie ich das richtige datum dort hinein bekomme?



Ps. Danke für den Hinweis mit der Code-formatierung. Ich hoffe, so wie ichs jetzt gemacht habe, ists richtig.
 
Wow, Problem gelöst. Ich habe soeben rausgefunden, das ich keinen Timestamp habe, sonder die ID umwandele. Also habe ich

PHP:
$ndate = getdate($daten->timestamp);

zu

PHP:
$ndate = getdate($daten->id);

gemacht. Kaum macht mans richtig, schon funktionierts....

Ich bedanke mich ganz herzlich für die nette Hilfe und wünsche noch nen schönes Restwochenende!!
 
Zurück