From 0efe617c0313950dae7a8ecd48c02bf5a1261e58 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Sat, 24 Jun 2023 18:39:55 +0800 Subject: [PATCH] fix the problem that system default timezone is not browser timezone when custom timezone is set --- src/lib/datetime.js | 4 ++++ src/lib/i18n.js | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/datetime.js b/src/lib/datetime.js index 177079cc..d37cd847 100644 --- a/src/lib/datetime.js +++ b/src/lib/datetime.js @@ -49,6 +49,10 @@ export function getTimezoneOffsetMinutes(timezone) { return getUtcOffsetMinutesByUtcOffset(utcOffset); } +export function getBrowserTimezoneOffset() { + return getUtcOffsetByUtcOffsetMinutes(getBrowserTimezoneOffsetMinutes()); +} + export function getBrowserTimezoneOffsetMinutes() { return -new Date().getTimezoneOffset(); } diff --git a/src/lib/i18n.js b/src/lib/i18n.js index b478706b..4ea9a31f 100644 --- a/src/lib/i18n.js +++ b/src/lib/i18n.js @@ -16,6 +16,8 @@ import { getCurrentDateTime, getTimezoneOffset, getTimezoneOffsetMinutes, + getBrowserTimezoneOffset, + getBrowserTimezoneOffsetMinutes, getDateTimeFormatType } from './datetime.js'; @@ -433,8 +435,8 @@ function getDateTimeFormat(translateFn, allFormatMap, allFormatArray, localeForm } function getAllTimezones(includeSystemDefault, translateFn) { - const defaultTimezoneOffset = getTimezoneOffset(); - const defaultTimezoneOffsetMinutes = getTimezoneOffsetMinutes(); + const defaultTimezoneOffset = getBrowserTimezoneOffset(); + const defaultTimezoneOffsetMinutes = getBrowserTimezoneOffsetMinutes(); const allTimezones = timezone.all; const allTimezoneInfos = [];