phpbar.de logo

Mailinglisten-Archive

[php] datetime oder timestamp?

[php] datetime oder timestamp?

andreas kempf aka 'amalesh' php_(at)_phpcenter.de
Tue, 03 Jul 2001 12:58:41 +0200


On Mon, 02 Jul 2001 23:06:36 +0200, Ithamar Garbe <garbe_(at)_gmx.de>
wrote:

Hallo,

jetzt meldet sich auch mal ein lurker ;)

>ich m=F6chte in einer MySQL-Datenbank Termine f=FCr einen Eventkalender
>abspeichern. Die Termine sollen aus Datum und Uhrzeit bestehen und
>durchsuchbar sein. Ein Event wird abgespeichert mit z.B. 01.08.2001
>18:30:00 (als Beginn) und 01.08.2001 20:00:00 (als Ende).
>Ich bin jetzt am =FCberlegen, ob ich das Format DATETIME von MySQL =
nehmen
>soll, oder ob ich die PHP-Timestamps erzeugen und als INT einf=FCgen =
soll.
>Was ist eurer Ansicht nach sinnvoller?

Keine ahnung, was du mit "PHP-timestamps" meinst. Mit "INT einf=FCgen"
meinst du vermutlich den unix-timestamp, der allerdings "pur" nicht
lesbar ist.

Es gibt in MySQL den datentyp "timestamp", der den zweck hat, bei
jedem insert/update/replace automatisch den zeitpunkt im format
"YYYYMMDDhhmmss" dieser aktion zu erfassen. Das funktioniert
allerdings nur fuer *ein* feld des typs timestamp in der tabelle.
Weitere, evtl. in dieser tabelle vorhandene timestamp-felder bleiben
leer.

>Einerseits ist es vielleicht gescheiter, wenn ich alle Events, die an
>einem bestimmten Datum laufen, per SQL-internen Funktionen auflisten
>lasse, auch wenn das mit der Timestamp-Funktion von PHP gut
>funktioniert, andererseits kann ich mit date() gleich den Wochentag des
>Events auslesen, muss nicht den Datumsstring zerpfl=FCcken und kann
>Zeitdifferenzen bequem ermitteln.

Das kannst du mysql-seitig sowohl mit dem timestamp- als auch mit dem
datetime-format loesen.

>Von diesem Standpunkt aus gesehen ist also der PHP-Timestamp die beste
>L=F6sung, oder? Oder spricht etwas dagegen und f=FCr DATETIME?

Der datentyp datetime speichert im ISO format "YYYY-MM-DD hh:mm:ss",
daher wird es dir nichts nuetzen, wenn du diesen datentyp verwendest,
als ausgabe jedoch das deutsche datenformat haben willst.

btw: das ISO format YYYY-MM-DD ist seit ca. 3 jahren teil der=20
DIN-5001 (oder wars 5003?), die das layout von geschaeftsbriefen
beschreibt.=20

>Ich m=F6chte gerne alle Events nach dem Datum ordnen lassen, die Dauer
>eines Events ermitteln, Events f=FCr einen bestimmten Tag heraussuchen =
und
>diverse andere Dinge... was f=FCr ein Format ist also sinnvoll?

Meine empfehlung: Datentyp datetime in MySQL fuer alle event-daten
(start/ende/eintragsdatum) und ein feld "last_edit" mit datentyp
"timestamp" verwenden.

Vom speichern des unix-timestamp wuerde ich abraten, da du keinen
vorteil davon hast und dieses format von menschen nicht lesbar ist
(vielleicht gibt es ausnahmen - aber die koennen auch die 7. potenz
einer 53stelligen zahl im kopf ausrechnen). Und als admin muss man
ab+zu auch mal direkt mit der datenbank arbeiten - da ist es dann
hilfreich, lesbare formate zu haben.

ciao, andreas kempf aka 'amalesh'

ps: hier eine im weiteren sinne passende sig zum thema:
--=20
<http://www.goatrance.de/goabase/> * international goatrance parties
5 years online * monthly 250 parties * 500 meetings * 40.000 users=20
partyreports * newsletter * no banner * ahead of your connection! ;)
contact: andreas kempf aka 'amalesh' * <webmaster_(at)_goatrance.de>


php::bar PHP Wiki   -   Listenarchive