From 86fb7c55e874b28a6876b4422517fce295a9cf3e Mon Sep 17 00:00:00 2001 From: "Crane.z" <1481445951@qq.com> Date: Tue, 10 Mar 2026 14:20:37 +0800 Subject: [PATCH] feat: change date format logic to use browser timezone --- src/utils/common/time.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/utils/common/time.js b/src/utils/common/time.js index fa3c486d1..13555da05 100644 --- a/src/utils/common/time.js +++ b/src/utils/common/time.js @@ -2,6 +2,27 @@ const moment = require('moment') import { getLangCode } from '@/i18n/utils' import store from '@/store' +/** + * 根据浏览器时区获取时间格式 + * @returns {string} 'YYYY-MM-DD' 或 'MM/DD/YYYY' + */ +function getDateFormatByTimezone() { + try { + const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone + + // 美洲地区使用 MM/DD/YYYY 格式 + if (timezone && (timezone.startsWith('America/') || timezone.startsWith('US/'))) { + return 'MM/DD/YYYY' + } + + // 其他地区(包括 Asia、Europe 等)使用 YYYY-MM-DD 格式 + return 'YYYY-MM-DD' + } catch (e) { + // 如果浏览器不支持获取时区,fallback 为 YYYY-MM-DD + return 'YYYY-MM-DD' + } +} + function getTimeUnits(u) { const units = { d: '天', @@ -73,7 +94,8 @@ export function toSafeLocalDateStr(d) { return '-' } const date = safeDate(d) - return moment(date).format('L HH:mm:ss') + const dateFormat = getDateFormatByTimezone() + return moment(date).format(`${dateFormat} HH:mm:ss`) } export function getDaysAgo(days, now) {