Timestamp formatieren?

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Timestamp formatieren?

Beitrag 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
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Timestamp formatieren?

Beitrag 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
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Timestamp formatieren?

Beitrag 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
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Timestamp formatieren?

Beitrag von oxpus »

Klar. Einfach mit time() abfragen reicht dann schon.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Timestamp formatieren?

Beitrag von Holger »

Wie müsste ich dann das DB-Feld einstellen?
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Timestamp formatieren?

Beitrag von oxpus »

Am besten int(11).
char(15) ginge aber auch...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Timestamp formatieren?

Beitrag von Holger »

Danke!
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Timestamp formatieren?

Beitrag von Holger »

Muss ich da auch ein Default eingeben, wie CURRENT_TIMESTAMP?
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Timestamp formatieren?

Beitrag von oxpus »

Code: Alles auswählen

feldname INT(11) not null default 0;
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Timestamp formatieren?

Beitrag von Holger »

Ok, also muss ich das per Skript füllen?
Es geht nicht automatisch wie bei timestamp.
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Timestamp formatieren?

Beitrag 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...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
it-pro
Beiträge: 6
Registriert: Do 03.Apr, 2014 21:49

Re: Timestamp formatieren?

Beitrag 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.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Timestamp formatieren?

Beitrag 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.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten