Seite 1 von 1

Timestamp formatieren?

Verfasst: Di 05.Jul, 2011 09:51
von Holger
Hallo, ich speichere den Zeitpunkt für die Erstellung eines Datensatzes mit timestamp (CURRENT_TIMESTAMP). Das Ergebnis sieht in der DB so aus: 2011-07-02 11:50:29

Wie kann ich das "formatieren"?
Geht das mit date()?

Gruss
Holger

Re: Timestamp formatieren?

Verfasst: Di 05.Jul, 2011 20:21
von oxpus
Nein, das geht nur, wenn du den String "zerlegst". Also z. B. mit substr().
date() kann dagegen nur "echte" Timestamps im Unix-Format bearbeiten und formatieren.
Also Werte, wie sie z. B. mit time() erzeugt werden können (time = akuelle Zeit).

Unterschied:
Ein Unix-Timestamp beinhaltet die Anzahl Sekunden seit dem 01.01.1970 0 Uhr inkl. aller kalendarischen Besonderheiten wie z. B. Schaltjahre.
Dieses ist dann also eine Zahl.
Dein Wert ist aber ein String und der kann nun einmal nicht als Zahl dargestellt werden, ausser, man würde umständlich die Sekunden errechnen, was allerdings aufgrund der doch recht kniffligen Kalenderregeln nicht ohne ist...

Versuche es nach dem Zerlegen doch mal hiermit: http://de.php.net/manual/de/function.mktime.php

Re: Timestamp formatieren?

Verfasst: Mi 06.Jul, 2011 09:27
von Holger
Dann wäre es doch einfacher, wenn ich den Unix-Timsestamp speichere anstatt dessen was ich jetzt habe?

Code: Alles auswählen

'created'	timestamp		CURRENT_TIMESTAMP
Gruss
Holger

Re: Timestamp formatieren?

Verfasst: Mi 06.Jul, 2011 11:59
von oxpus
Klar. Einfach mit time() abfragen reicht dann schon.

Re: Timestamp formatieren?

Verfasst: Mi 06.Jul, 2011 13:21
von Holger
Wie müsste ich dann das DB-Feld einstellen?

Re: Timestamp formatieren?

Verfasst: Mi 06.Jul, 2011 16:57
von oxpus
Am besten int(11).
char(15) ginge aber auch...

Re: Timestamp formatieren?

Verfasst: Do 07.Jul, 2011 09:09
von Holger
Danke!

Re: Timestamp formatieren?

Verfasst: Do 07.Jul, 2011 13:34
von Holger
Muss ich da auch ein Default eingeben, wie CURRENT_TIMESTAMP?

Re: Timestamp formatieren?

Verfasst: Do 07.Jul, 2011 23:04
von oxpus

Code: Alles auswählen

feldname INT(11) not null default 0;

Re: Timestamp formatieren?

Verfasst: Fr 08.Jul, 2011 13:20
von Holger
Ok, also muss ich das per Skript füllen?
Es geht nicht automatisch wie bei timestamp.

Re: Timestamp formatieren?

Verfasst: Fr 08.Jul, 2011 15:03
von oxpus
???
Was willst du denn eintragen?
Die Angaben in meinem letzten Beitrag sind die Definition des Feldes in der Datenbank.
Den Rest macht de Datenbankserver schon selber...

Re: Timestamp formatieren?

Verfasst: So 06.Apr, 2014 22:04
von it-pro
Kann ich, was den Timestamp betrifft auch ein eigenes Format festlegen? Kenne es von Java mit dem Simple Date Format, dass man eigene bestimmte Formate erstellen kann, wie etwa bspw. nur Stunde, Tag und Jahr. Ist so etwas hier auch möglich oder nicht? Würde mich über eine Idee freuen.

Re: Timestamp formatieren?

Verfasst: Mo 07.Apr, 2014 13:27
von oxpus
Selbstverständlich kann man eigene Formate verwenden.
Die Parameter kann man sich auf php.net unter dem Suchbegriff date anschauen.
Diese Funktion stellt einen Timestamp nach Unix Vorgaben in ein gewünschtes Format dar. Ggf. sind dann nur noch Zeitzonen und Sommerzeit zu berücksichtigen.