diff --git a/web/admin-spa/dist/index.html b/web/admin-spa/dist/index.html index 0721fb8c..fe670ac7 100644 --- a/web/admin-spa/dist/index.html +++ b/web/admin-spa/dist/index.html @@ -18,7 +18,7 @@ - + diff --git a/web/admin-spa/src/stores/dashboard.js b/web/admin-spa/src/stores/dashboard.js index c7837448..787ac6f8 100644 --- a/web/admin-spa/src/stores/dashboard.js +++ b/web/admin-spa/src/stores/dashboard.js @@ -91,30 +91,30 @@ export const useDashboardStore = defineStore('dashboard', () => { } // 辅助函数:获取系统时区某一天的起止UTC时间 - // 输入:系统时区的日期(使用getDateInSystemTimezone转换后的) - // 输出:对应的UTC时间 - function getSystemTimezoneDay(systemTzDate, startOfDay = true) { + // 输入:一个日期(以用户本地时间表示) + // 输出:该日期在系统时区的0点/23:59对应的UTC时间 + function getSystemTimezoneDay(localDate, startOfDay = true) { const offset = dashboardData.value.systemTimezone || 8 - // 使用UTC方法获取系统时区日期的年月日 - const year = systemTzDate.getUTCFullYear() - const month = systemTzDate.getUTCMonth() - const day = systemTzDate.getUTCDate() - - // 创建一个新的Date对象 - const result = new Date() + // 获取用户本地日期的年月日 + const year = localDate.getFullYear() + const month = localDate.getMonth() + const day = localDate.getDate() + // 创建UTC时间,表示系统时区的该日期 if (startOfDay) { - // 设置为系统时区的0点(UTC时间) - result.setUTCFullYear(year, month, day) - result.setUTCHours(0 - offset, 0, 0, 0) + // 系统时区YYYY-MM-DD 00:00:00 对应的UTC时间 + const utcDate = new Date(Date.UTC(year, month, day, 0, 0, 0, 0)) + // 减去系统时区偏移得到UTC时间 + utcDate.setUTCHours(utcDate.getUTCHours() - offset) + return utcDate } else { - // 设置为系统时区的23:59:59.999(UTC时间) - result.setUTCFullYear(year, month, day) - result.setUTCHours(23 - offset, 59, 59, 999) + // 系统时区YYYY-MM-DD 23:59:59.999 对应的UTC时间 + const utcDate = new Date(Date.UTC(year, month, day, 23, 59, 59, 999)) + // 减去系统时区偏移得到UTC时间 + utcDate.setUTCHours(utcDate.getUTCHours() - offset) + return utcDate } - - return result } // 方法 @@ -199,17 +199,15 @@ export const useDashboardStore = defineStore('dashboard', () => { break case 'yesterday': // 昨天:基于系统时区的昨天 - const systemNow = getDateInSystemTimezone(now) - const yesterday = new Date(systemNow) - yesterday.setUTCDate(yesterday.getUTCDate() - 1) + const yesterday = new Date(now) + yesterday.setDate(yesterday.getDate() - 1) startTime = getSystemTimezoneDay(yesterday, true) endTime = getSystemTimezoneDay(yesterday, false) break case 'dayBefore': // 前天:基于系统时区的前天 - const systemNow2 = getDateInSystemTimezone(now) - const dayBefore = new Date(systemNow2) - dayBefore.setUTCDate(dayBefore.getUTCDate() - 2) + const dayBefore = new Date(now) + dayBefore.setDate(dayBefore.getDate() - 2) startTime = getSystemTimezoneDay(dayBefore, true) endTime = getSystemTimezoneDay(dayBefore, false) break @@ -279,17 +277,15 @@ export const useDashboardStore = defineStore('dashboard', () => { break case 'yesterday': // 昨天:基于系统时区的昨天 - const systemNow3 = getDateInSystemTimezone(now) - const yesterday = new Date(systemNow3) - yesterday.setUTCDate(yesterday.getUTCDate() - 1) + const yesterday = new Date(now) + yesterday.setDate(yesterday.getDate() - 1) startTime = getSystemTimezoneDay(yesterday, true) endTime = getSystemTimezoneDay(yesterday, false) break case 'dayBefore': // 前天:基于系统时区的前天 - const systemNow4 = getDateInSystemTimezone(now) - const dayBefore = new Date(systemNow4) - dayBefore.setUTCDate(dayBefore.getUTCDate() - 2) + const dayBefore = new Date(now) + dayBefore.setDate(dayBefore.getDate() - 2) startTime = getSystemTimezoneDay(dayBefore, true) endTime = getSystemTimezoneDay(dayBefore, false) break @@ -351,17 +347,15 @@ export const useDashboardStore = defineStore('dashboard', () => { break case 'yesterday': // 昨天:基于系统时区的昨天 - const systemNow5 = getDateInSystemTimezone(now) - const yesterday2 = new Date(systemNow5) - yesterday2.setUTCDate(yesterday2.getUTCDate() - 1) + const yesterday2 = new Date(now) + yesterday2.setDate(yesterday2.getDate() - 1) startDate = getSystemTimezoneDay(yesterday2, true) endDate = getSystemTimezoneDay(yesterday2, false) break case 'dayBefore': // 前天:基于系统时区的前天 - const systemNow6 = getDateInSystemTimezone(now) - const dayBefore2 = new Date(systemNow6) - dayBefore2.setUTCDate(dayBefore2.getUTCDate() - 2) + const dayBefore2 = new Date(now) + dayBefore2.setDate(dayBefore2.getDate() - 2) startDate = getSystemTimezoneDay(dayBefore2, true) endDate = getSystemTimezoneDay(dayBefore2, false) break