Create function to adjust for timezone difference between server and the client

[MAILPOET-5495]
This commit is contained in:
 Ján Mikláš
2024-06-11 03:18:11 -04:00
committed by Aschepikov
parent da190c5d06
commit 6e1462d4f4

View File

@@ -20,6 +20,7 @@ export const MailPoetDate: {
time: (date: MomentInput) => string;
convertFormat: (format: string) => string;
isInFuture: (dateString: string, currentTime: MomentInput) => boolean;
adjustForTimezoneDifference: (date: Date) => Date;
} = {
version: 0.1,
options: {},
@@ -181,4 +182,16 @@ export const MailPoetDate: {
},
isInFuture: (dateString: string, currentTime: MomentInput): boolean =>
Moment(dateString).isAfter(currentTime, 's'),
adjustForTimezoneDifference: function adjustForTimezoneDifference(
date: Date,
): Date {
const serverOffsetMinutes = window.mailpoet_server_timezone_in_minutes || 0;
const browserOffsetMinutes = new Date().getTimezoneOffset();
const offsetDifference = browserOffsetMinutes - serverOffsetMinutes;
if (!offsetDifference) {
return date;
}
date.setMinutes(date.getMinutes() - offsetDifference);
return date;
},
} as const;