anzeige

Timestamp aus Datenbank in deutschem Format ausgeben


Seite: 1
Autor Beitrag
trollhut
16.01.10 - 22:32:56 Uhr

Hallo!
Und nocheinmal dieses leidliche Thema...
Ich möchte in meinem Gästebuch das Datum un die Uhrzeit anzeigen lassen, wann ein Beitrag abgesendet wurde. Das Format soll "d.m.Y - H:i" sein.
Im Vorraus muss ich sagen, dass ich eine absolute Laye in PHP und Datenbanken bin und mir meine Sachen immer aus verschiedenen Schnipseleien und try-and-error zusammenbastle, daher ist der Code garantiert nicht "schön".
Also inzwischen hab ich es geschafft, dass in der Datenbank im Feld "datum" das Datum im Format "Y-m-d H:i:s" gespeichert wird (das dürfte das normale $timestamp Format sein). Allerdings sollte das meiner Meinung nach eigentlich schon in meinem gewünschten Format gespeichert werden...
Dat wird gespeichert wenn ein Eintrag abgeschickt wird:
$sql = "INSERT INTO gbook (datum) VALUES ('".time("d.m.Y", $timestamp)."')";

und damit ruf ich das Datum dann wieder ab:
<td>'.$db3[datum].'</td>

die Datenbank-tabelle sieht so aus:
`datum` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP"

Über sämtliche Suchbegriffe bei Google und hier hab ich leider keine Lösung gefunden...dafür aber 1000 Sahen ausprobiert. Please help, ich bin mit meinem Latein echt am Ende...:'(

Liebe Grüße


SammysHP
17.01.10 - 00:37:52 Uhr

Die Tabelle (bzw. die Spalte) sieht schonmal gut aus. Damit lässt sich arbeiten. Der Rest ist aber falsch.

Wenn du den Gästebucheintrag speicherst, gibst du keinen Wert für die 'datum'-Spalte an. Denn die aktuelle Zeit wird ja über den Defaultwert eingefügt.

Beim Query nutzt du die MySQL-Funktion UNIX_TIMESTAMP() (http://tinyurl.com/dc5yvj; geht leider nicht als Link, da Pytal irgendwie wieder Probleme mit dem url-BBCode-Parser hat) und arbeitest anschließend mit der php-Funktion date() weiter.

Damit solltest du mit etwas Eigenarbeit weiter kommen.

(übrigens ist das "$db3[datum]" falsch, denn dort fehlen die Anführungszeichen für den Index des assoziativen Arrays)

_________________
www.sammyshp.de
trollhut
19.01.10 - 17:53:38 Uhr

Hallo und danke für deine antwort!

Also ich habe ein wenig rumgewerkelt und mir die definitionen von unic-timestamp und date() noch einmal durchgelesen aber bei mir ist immer noch ein großes Fragezeichen im Kopf. Steig da noch nicht so ganz durch, Folgendes hab ich versuht nach deinen Tipps zu verbessern:
Ich habe die-Eintrag.speichern-Datei ein wenig geändert:
$sql = "SELECT unix_timestamp() from gbook where username INSERT INTO gbook (datum)";

Hier zeigt er mir keine Fehlermeldung an und speichert in der Datenbank wie zuvor das Datum im $timestamp-format. Scheint also zu funktionieren.
Ich denke du meinst diesen $sql - Verweiß mit query?

Muss ich das Datum jetzt schon beim speichern formatieren und wenn ja, wie mach ich das am schlausten und kann ich die db-Spalte dann noch bei "timestamp" lassen?
Wenn nein: wie in gottes namen, kann ich beim anzeigen des eintrags das Datum formatieren?
die Ausgabe erfolgt ja so:
<td>'.$db3['datum'].'</td> 

reintheoretisch müsste ich dort ja leicht einbauen können, dass er den timestamp-wert formatiert ausgibt, aber wie verpacke ich das in php?

Liebe Grüße
SammysHP
19.01.10 - 19:27:35 Uhr

Der Query ist absoluter mist, der kann gar nicht funktionieren. Beschäftige dich nochmal mit MySQL, das schaffst du auch alleine (--> Google, MySQL Einstieg)

_________________
www.sammyshp.de
feuerfuchs
20.01.10 - 12:54:05 Uhr

UNIX_TIMESTAMP() ist eine MySQL-Funktion, die einen Parameter erwartet, zum Beispiel:
SELECT name, text, UNIX_TIMESTAMP(date) AS date FROM gbook
Du hast dann in deinem Ergebnis die Felder name, text und date (als Unix-Timestamp).
______________
PyChat
PyFix
Pytal-RSS-Feed
SammysHP
20.01.10 - 15:35:57 Uhr

Schau dir den Query nochmal an, das ist hier gar nicht mal das Hauptproblem

_________________
www.sammyshp.de
trollhut
04.04.10 - 15:24:58 Uhr

Hallo hallo, ich habs geschafft.
Endlich konnte ich nämlich auf meine alte Datenbank zugreifen (auf der das ganze nämlich geklappt hat ^^) und das mit der aktuellen vergleichen...e voila: dort hatte ich den Datensatz "datum" nicht mit dem typ "timestamp" sondern "varchar" belegt. Nach ein wenig herumprobieren funktioniert jetzt das anzeigen mit folgendem php-code:
  1. $timestamp = time();  
  2.  
  3. $datum = date("d.m.Y - H:i",$timestamp);  
  4. $code = "INSERT INTO gbook (id, username, email, homepage, nachricht, datum) VALUES('','$username', '$email', '$homepage', '$nachricht', '$datum')";  


Und ich bin sehr sehr happy =) ist vll nicht der schönste Code, aber es funktioniert =)

Vielen vielen Dank für die Hilfe, wobei ich schon an Begriffen wie "Schau dir nochmal den Query an" gescheitert bin ^^

Danke!

Trollhut
SammysHP
04.04.10 - 15:40:57 Uhr

http://dev.mysql.com/doc/refman/5.1/e...nction_now

_________________
www.sammyshp.de
Seite: 1

- Obige Beiträge stellen keine Äußerung oder Meinung von Pytal oder dessen Betreiber dar -