You are not logged in.

  • Login

1

Friday, January 7th 2011, 12:54pm

Timestamp richtig ausgeben

Hallo zusammen,

ich habe in einer Datenbank die Spalte "Datum" angelegt und ihr den Typ "timestamp" gegeben. Wird nun ein Eintrag per PHP in die tabelle geschrieben, füllt die Datenbank die Spalte sofort mit dem aktuellen Datum und der Zeit.

Als Beispiel steht nun bei einem Eintrag z.B. "2011-01-07 12:11:46".

Soweit sogut, ich will nun aber aus diesem Timestamp folgende Ausgabe erzeugt haben per PHP: "07. Januar 2011 um 12:11 Uhr"

Habe so einiges bei Google gelesen und ausprobiert, bei vielen scheint es zu klappen mit dem Typ timestamp aber bei mir kommt immer nur 1970 o.ä. raus :(

Wäre super, wenn jemand da ein Code-Snippet hat! :)

2

Friday, January 7th 2011, 3:38pm

Das kannst du direkt in der MySQL Abfrage machen:

SQL Code

1
SELECT DATE_FORMAT(FIELD, '%d.%m.%Y') FROM TABLE;


Details kannst du aus der MySQL Referenz entnehmen. Schau mal unter der Funktion DATE_FORMAT
http://dev.mysql.com/doc/refman/5.1/de/d…-functions.html

3

Friday, January 7th 2011, 7:08pm

Wenn du es in PHP machen möchtest kannst du strtotime() nutzen, dann erhälst du deinen Timestamp den du mit date()
so wie du ihn haben möchtest formatieren kannst.

4

Tuesday, January 11th 2011, 10:22am

Um das deutsche Datum ausgeben zu können habe ich nun folgenden funktionierenden Codeschnipsel:

PHP Quellcode

1
setlocale(LC_ALL,"ge"); echo strftime("%A, %d.%B.%Y");


Jetzt ist nur die Frage, wo ich da das Datum reinhaue? Bisher wird das jetzige Datum ausgegeben :(

PHP Quellcode

1
setlocale(LC_ALL,"ge"); echo strftime("%A, %d.%B.%Y",$row[datum]);

Gibt leider trotz Datensatz 2011-01-11 08:36:41 folgendes aus:
Donnerstag, 01.Januar.1970

5

Tuesday, January 11th 2011, 10:44am


Jetzt ist nur die Frage, wo ich da das Datum reinhaue? Bisher wird das jetzige Datum ausgegeben :(
Gibt leider trotz Datensatz 2011-01-11 08:36:41 folgendes aus:
Donnerstag, 01.Januar.1970


[...]kannst du strtotime() nutzen, dann erhälst du deinen Timestamp [...]


PHP Quellcode

1
setlocale(LC_ALL,"de_DE"); echo strftime("%A, %d.%B.%Y",strtotime($row[datum]));



Bei setlocale() funktioniert auch "ge", aber "schöner" ist es, wenn du de_DE, also "sprache_Gebietsschema" verwendest.

6

Tuesday, January 11th 2011, 10:53am

Sehr schön, danke!

(Leider muss ich "ge" nehmen, da "de_DE" bei deinem schnippsel "Friday, 07 January 2011" ausgibt, also in Englisch!) :)

Similar threads

Social bookmarks