feat: 修复奇安信浏览器时区格式错误

This commit is contained in:
TsMask
2025-09-15 16:40:40 +08:00
parent d249d14c49
commit a2f93f7862

View File

@@ -17,6 +17,35 @@ export const RFC3339 = 'YYYY-MM-DDTHH:mm:ssZ';
/**国际时间 列如Thu, Nov 14 2024 10:19 GMT+08:00 */
export const RFC822Z = 'ddd, MMM DD YYYY HH:mm [GMT]Z';
// 映射时区偏移量与IANA时区名称关联
export const offsetToIanaMap: Record<string, string> = {
'+0000': 'UTC',
'+0100': 'Europe/London',
'+0200': 'Europe/Paris',
'+0300': 'Europe/Moscow',
'+0400': 'Asia/Dubai',
'+0500': 'Asia/Karachi',
'+0600': 'Asia/Almaty',
'+0700': 'Asia/Bangkok',
'+0800': 'Asia/Shanghai',
'+0900': 'Asia/Tokyo',
'+1000': 'Australia/Sydney',
'+1100': 'Pacific/Noumea',
'+1200': 'Pacific/Fiji',
'-0100': 'America/Noronha',
'-0200': 'Atlantic/Azores',
'-0300': 'America/Argentina/Buenos_Aires',
'-0400': 'America/New_York',
'-0500': 'America/New_York',
'-0600': 'America/Chicago',
'-0700': 'America/Denver',
'-0800': 'America/Los_Angeles',
'-0900': 'Pacific/Honolulu',
'-1000': 'Pacific/Honolulu',
'-1100': 'Pacific/Pago_Pago',
'-1200': 'Pacific/Kwajalein',
};
/**
* 格式时间字符串
* @param dateStr 时间字符串
@@ -53,9 +82,10 @@ export function parseDateUTCToStr(
date: string | number | Date,
offset: string = '+0000'
): string {
const ianaTimezone = offsetToIanaMap[offset] || 'UTC';
return dayjs
.utc(date) // 将时间戳按 UTC 时间
.tz(offset) // 使用时区偏移
.tz(ianaTimezone) // 使用时区偏移
.format(`YYYY-MM-DD HH:mm:ss [UTC${offset}]`); // 格式化时间
}