Discussion:
JavascriptDatum in Delphi
(zu alt für eine Antwort)
Jens Köhler
2020-05-18 11:16:06 UTC
Permalink
Hallo,

ich habe eine Javascriptfunktion

var timeStamp = new Date;
var time = Math.round((timeStamp/1000) / 180);

die ich nach Delphi übersetzen möchte.
Ich habe gefunden, daß das Javascriptdatum dem Unixdatum entspricht.
Eine funktion die ein DateTime nach Unix übersetzt, habe ich auch.

const
UnixStartDate : TDateTime = 25569; // 01.01.1970

function DateTimeToUnix(aDate : TDateTime) : Longint;
// Unixzeit in Sekunden
begin
Result := Round((aDate - UnixStartDate) * 86400);
end;

Date := DateTimeToUnix(now);

f := round(x / 180);
// ohne / 1000 da schon Sekunden und nicht Millisekunden

Das Ergebnis in Delphi ist immer 40 zu hoch. Wieso???

Jens
Julius Kavay
2020-05-19 00:25:10 UTC
Permalink
Post by Jens Köhler
Hallo,
ich habe eine Javascriptfunktion
var timeStamp = new Date;
var time = Math.round((timeStamp/1000) / 180);
die ich nach Delphi übersetzen möchte.
Ich habe gefunden, daß das Javascriptdatum dem Unixdatum entspricht.
Eine funktion die ein DateTime nach Unix übersetzt, habe ich auch.
const
UnixStartDate : TDateTime = 25569; // 01.01.1970
function DateTimeToUnix(aDate : TDateTime) : Longint;
// Unixzeit in Sekunden
begin
Result := Round((aDate - UnixStartDate) * 86400);
end;
Date := DateTimeToUnix(now);
f := round(x / 180);
// ohne / 1000 da schon Sekunden und nicht Millisekunden
Das Ergebnis in Delphi ist immer 40 zu hoch. Wieso???
das eine ist Localzeit, das andere ist UTC.
Derzeit: 2 Stunden unterschied,
nach Adam Ries(e) ist es dann: 2*3600/180 --> 40

Gruesse
Julius


--
Jens Köhler
2020-05-19 15:30:24 UTC
Permalink
Post by Julius Kavay
Post by Jens Köhler
Das Ergebnis in Delphi ist immer 40 zu hoch. Wieso???
das eine ist Localzeit, das andere ist UTC.
Derzeit: 2 Stunden unterschied,
nach Adam Ries(e) ist es dann: 2*3600/180 --> 40
Gruesse
Julius
An die Stirn klatsch, das stimmt.
Vielen Dank.

Jens

Loading...