Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6
  Alt 19. Sep 2002, 18:34
Ich nehm an, du meinst die UNIX-Zeit, die seit dem 1.1.1970 die Sekunden zählt. Die, die man mit der PHP-Funktion time() ermittelt.
Die gleiche Funktion brauchte ich auch einmal und hab sie mir selber geschrieben. Leider hat sie einen fehler von etwa 0,1 s. Also in etwa 10% aller Fälle liegt sie eine Sekunde falsch. Aber ich such die Funktion gleich mal raus und schreib noch was dazu.



So, hier ist sie:

Code:
function DateTimetoUNIX(zeit: TDateTime): Longint;
const UnixDateDelta=25569;
begin
  Result:=Round(((zeit-UnixDateDelta)*24*60*60)-7200.5);
end;
Wenn man Delphi6 > hat, braucht man die Konstantendeklaration nicht. Die Funktion rechnet anhand der Konstante die Tage, dann die Stunden, dann die Minuten und schließlich die Sekunden aus, die seit dem 1.1.1970 vergangen sind. Die Subtraktion von 7200.5 am Ende kommt daher, dass der Code am Anfang einen falschen Wert lieferte und ich dann gesehen hab, dass es etwa 7200 s waren. Das hat dann auch nicht so ganz gestimmt. Dann hab ich gleichzeitig PHP-Scripts und die Funktion im Delphi-Programm ausgeführt und die Werte verglichen, solange, bis ich was gescheites gefunden hab. Ich hab dann die ,5 genommen, das stimmt im Großen und Ganzen überein. Aber da mir keine einfache Möglichkeit einfiel, PHP und Delphi gleichzeitig zu testen, ist dieses Ergebnis nicht 100%ig genau (wie oben beschrieben). Vielleicht weiß jemand, warum ich noch die 7200 Sekunden und ein paar Zerquetschte abzeiehen muss, um zum richtigen Ergebnis zu kommen?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat