Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.delphi.misc > #19072 > unrolled thread

JavascriptDatum in Delphi

Started byJens Köhler <jkoehl@web.de>
First post2020-05-18 13:16 +0200
Last post2020-05-19 17:30 +0200
Articles 3 — 2 participants

Back to article view | Back to de.comp.lang.delphi.misc


Contents

  JavascriptDatum in Delphi Jens Köhler <jkoehl@web.de> - 2020-05-18 13:16 +0200
    Re: JavascriptDatum in Delphi Julius Kavay <kavay@gmx.net.is.not.invalid> - 2020-05-19 02:25 +0200
      Re: JavascriptDatum in Delphi Jens Köhler <jkoehl@web.de> - 2020-05-19 17:30 +0200

#19072 — JavascriptDatum in Delphi

FromJens Köhler <jkoehl@web.de>
Date2020-05-18 13:16 +0200
SubjectJavascriptDatum in Delphi
Message-ID<r9tqpd$s8i$1@solani.org>
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

[toc] | [next] | [standalone]


#19073

FromJulius Kavay <kavay@gmx.net.is.not.invalid>
Date2020-05-19 02:25 +0200
Message-ID<hignahFudg9U1@mid.individual.net>
In reply to#19072
On 18.05.2020 13:16, Jens Köhler wrote:
> 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


-- 

[toc] | [prev] | [next] | [standalone]


#19074

FromJens Köhler <jkoehl@web.de>
Date2020-05-19 17:30 +0200
Message-ID<ra0u24$8lj$1@solani.org>
In reply to#19073
Am 19.05.2020 um 02:25 schrieb Julius Kavay:
> On 18.05.2020 13:16, Jens Köhler wrote:
>>
>> 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

[toc] | [prev] | [standalone]


Back to top | Article view | de.comp.lang.delphi.misc


csiph-web