mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-17 02:19:05 +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
|
// Various conversions
|
||||||
|
|
||||||
function DateTimeToJSDate(aDateTime : TDateTime) : TJSDate;
|
function DateTimeToJSDate(aDateTime : TDateTime; asUTC : Boolean = False) : TJSDate;
|
||||||
function JSDateToDateTime(aDate : TJSDate) : TDateTime;
|
function JSDateToDateTime(aDate : TJSDate) : TDateTime;
|
||||||
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
|
function DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp;
|
||||||
function TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime;
|
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): string; overload;
|
||||||
function FormatDateTime(const FormatStr: string; const DateTime: TDateTime; const aSettings: TFormatSettings): 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
|
Currency support
|
||||||
@ -3228,7 +3234,7 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function DateTimeToJSDate(aDateTime: TDateTime): TJSDate;
|
function DateTimeToJSDate(aDateTime: TDateTime; asUTC : Boolean = False): TJSDate;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
Y,M,D,h,n,s,z : Word;
|
Y,M,D,h,n,s,z : Word;
|
||||||
@ -3236,7 +3242,10 @@ Var
|
|||||||
begin
|
begin
|
||||||
DecodeDate(Trunc(aDateTime),Y,M,D);
|
DecodeDate(Trunc(aDateTime),Y,M,D);
|
||||||
DecodeTime(Frac(aDateTime),H,N,S,Z);
|
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;
|
end;
|
||||||
|
|
||||||
function JSDateToDateTime(aDate: TJSDate): TDateTime;
|
function JSDateToDateTime(aDate: TJSDate): TDateTime;
|
||||||
@ -8805,6 +8814,25 @@ begin
|
|||||||
System.Insert(New,FData,Index+1);
|
System.Insert(New,FData,Index+1);
|
||||||
end;
|
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
|
initialization
|
||||||
ShortMonthNames:=DefaultShortMonthNames;
|
ShortMonthNames:=DefaultShortMonthNames;
|
||||||
LongMonthNames:=DefaultLongMonthNames;
|
LongMonthNames:=DefaultLongMonthNames;
|
||||||
|
Loading…
Reference in New Issue
Block a user