mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-21 13:59:21 +02:00
* Improved timezone support in line with FPC
This commit is contained in:
parent
b50087d09d
commit
5297f0cf73
@ -480,7 +480,7 @@ Var
|
||||
|
||||
// Various conversions
|
||||
|
||||
function DateTimeToJSDate(aDateTime : TDateTime) : TJSDate;
|
||||
function DateTimeToJSDate(aDateTime : TDateTime; asUTC : Boolean = False) : TJSDate;
|
||||
function JSDateToDateTime(aDate : TJSDate) : TDateTime;
|
||||
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
|
||||
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
|
||||
@ -553,6 +553,12 @@ function StrToDateTimeDef(const S: String; const Defvalue : TDateTime; aSettings
|
||||
function FormatDateTime(const FormatStr: string; const DateTime: TDateTime): string; overload;
|
||||
function FormatDateTime(const FormatStr: string; const DateTime: TDateTime; const aSettings: TFormatSettings): string; overload;
|
||||
|
||||
// Local time
|
||||
|
||||
function GetLocalTimeOffset: Integer; overload;
|
||||
function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean; out Offset: Integer): Boolean; overload;
|
||||
function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean = False): Integer; overload;
|
||||
|
||||
|
||||
{ *****************************************************************************
|
||||
Currency support
|
||||
@ -3228,7 +3234,7 @@ begin
|
||||
Result:=0;
|
||||
end;
|
||||
|
||||
function DateTimeToJSDate(aDateTime: TDateTime): TJSDate;
|
||||
function DateTimeToJSDate(aDateTime: TDateTime; asUTC : Boolean = False): TJSDate;
|
||||
|
||||
Var
|
||||
Y,M,D,h,n,s,z : Word;
|
||||
@ -3236,7 +3242,10 @@ Var
|
||||
begin
|
||||
DecodeDate(Trunc(aDateTime),Y,M,D);
|
||||
DecodeTime(Frac(aDateTime),H,N,S,Z);
|
||||
Result:=TJSDate.New(Y,M-1,D,h,n,s,z);
|
||||
if asUTC then
|
||||
Result:=TJSDate.New(TJSDate.UTC(Y,M-1,D,h,n,s,z))
|
||||
else
|
||||
Result:=TJSDate.New(Y,M-1,D,h,n,s,z);
|
||||
end;
|
||||
|
||||
function JSDateToDateTime(aDate: TJSDate): TDateTime;
|
||||
@ -8805,6 +8814,25 @@ begin
|
||||
System.Insert(New,FData,Index+1);
|
||||
end;
|
||||
|
||||
Function GetLocalTimeOffset : Integer;
|
||||
|
||||
begin
|
||||
Result:=TJSDate.New.getTimezoneOffset;
|
||||
end;
|
||||
|
||||
function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean; out Offset: Integer): Boolean;
|
||||
begin
|
||||
offset:=DateTimeToJSDate(DateTime).getTimezoneOffset;
|
||||
Result:=True;
|
||||
end;
|
||||
|
||||
function GetLocalTimeOffset(const DateTime: TDateTime; const InputIsUTC: Boolean): Integer;
|
||||
begin
|
||||
if not GetLocalTimeOffset(DateTime, InputIsUTC, Result) then
|
||||
Result:=GetLocalTimeOffset();
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
ShortMonthNames:=DefaultShortMonthNames;
|
||||
LongMonthNames:=DefaultLongMonthNames;
|
||||
|
Loading…
Reference in New Issue
Block a user