From 428b9a7c3c8f6c83c8fc97056d245897487ff8e6 Mon Sep 17 00:00:00 2001 From: liaoxinyu Date: Fri, 15 Nov 2024 15:33:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9k=E7=BA=BF=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/exchange/open-position.vue | 2 +- static/chart_main/sevencoin.js | 27 +++++++++++++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/pages/exchange/open-position.vue b/pages/exchange/open-position.vue index a7be7c9..2636876 100644 --- a/pages/exchange/open-position.vue +++ b/pages/exchange/open-position.vue @@ -714,7 +714,7 @@ - + diff --git a/static/chart_main/sevencoin.js b/static/chart_main/sevencoin.js index c543a7d..e95f5cc 100644 --- a/static/chart_main/sevencoin.js +++ b/static/chart_main/sevencoin.js @@ -254,7 +254,8 @@ $(function () { } timestampToTime(timestamp) { const dates = new Date(timestamp); - const date = this.adjustToEasternTime(dates); + const resolutionTime = this.getResolutionTime() + const date = resolutionTime === 1 ? dates : this.adjustToEasternTime(dates); const yyyy = `${date.getFullYear()}`; const yy = `${date.getFullYear()}`.substr(2); @@ -277,19 +278,33 @@ $(function () { adjustToEasternTime(date) { // 将给定日期转换为时间戳 const timestamp = date.getTime(); - + // 获取美国东部时区偏移值(以分钟为单位) - const easternOffset = -240; // 美国东部时区偏移值为 -240 分钟 - + // const easternOffset = -240; // 美国东部时区偏移值为 -240 分钟 + // 获取东部时间的偏移值(分钟) + let easternOffset = 1260; // 标准时间(EST) + if (this.dateIsInEDT(date)) { + easternOffset = 1200; // 夏令时(EDT) + } // 调整时间为美国东部时间 const adjustedTime = timestamp - (date.getTimezoneOffset() + easternOffset) * 60 * 1000; - // 创建新的日期对象,并使用调整后的时间戳 const adjustedDate = new Date(adjustedTime); - + // 返回调整后的日期对象 return adjustedDate; } + // 判断日期是否在夏令时(简化的逻辑,实际应用中需要考虑更多的边界情况) + dateIsInEDT(date) { + const year = date.getUTCFullYear(); + const start = new Date(Date.UTC(year, 2, 13, 7)); // March, 2nd Sunday + const end = new Date(Date.UTC(year, 10, 6, 6)); // November, 1st Sunday + + start.setUTCDate(14 - start.getUTCDay()); + end.setUTCDate(7 - end.getUTCDay()); + + return date >= start && date < end; + } getResolutionTime() { const resolution = this.TView.chart().resolution();