[TYPO3-german] Zeitprobleme mit TYPO3

Bernhard Kraft kraftb at kraftb.at
Fri Mar 10 16:37:52 CET 2006


Sebastian Widmann wrote:

> $stunde = date("H", $ZeitAusDatenbank);

Ganz einfach.

In einem "date" oder "datetime" feld wird echt ein "Datum" gespeichert. Also offset
in sekunden von 1.1.1970 0:0 GMT.

Ein "time" feld sollte jedoch eher nicht "time" sonder "hours" heissen ... denn es stellt
keine zeit zwischen 0-24 dar sondern einfach eine anzahl von stunden und minuten (probier
mal eingeben 12123:30 und schau wie deine applikation mit halb 12124 zurecht kommt :)

Und wenn du nun 0:0 eingibts (ist einfacher als mit 14:00) dann steht in dem feld: 0

und bekanntlich (hoffentlich :) ist date('d-m-Y, H:i', 0) in unserer zeitzone nicht:
1-1-1970 0:00 sondern 1-1-1970 1:00

Grund dafür ist einfach: eine timestamp hat keine zeitzone. sprich 0 ist immer 0 in greenwhich.
und wenns 0 in greenwhich ist ist bei uns eben schon mal sylvester vorbei und es ist 1 uhr.


du solltest in deiner applikation die stunde einfach so ausgeben:

$stunden = intval($row['zeit'] / 3600);
$minuten = intval(($row['zeit'] % 3600)/60);
$sekunden = $row['zeit'] % 60);

1. zeile sollte klar sein ... sekunden / 3600 = stunden.
2. zeile ist knifflig: sekunden % 3600 = rest von sekunden durch 3600 geteilt = anteil an minuten in sekunden angegeben / 60 =
anteil an minuten
3. zeile ist wieder einfach : sekunden % 60 = rest von sekunden durch 60 geteilt = anteil an sekunden

Leider gibts derzeit dafür nur eine API und die ist "stdWrap.age" ... mit diesem TS kannst du das alter
eines records ausgeben wenn du das willst .... aber eben nicht zu tagen, stunden, minuten, sekunden kommen ...


grüsse,
Bernhard
-- 
----------------------------------------------------------------------
"Freiheit ist immer auch die Freiheit des Andersdenkenden"
Rosa Luxemburg, 1871 - 1919
----------------------------------------------------------------------



More information about the TYPO3-german mailing list