diff --git a/pages/exchange/open-position.vue b/pages/exchange/open-position.vue
index 6dc8fa8..c77f8a4 100644
--- a/pages/exchange/open-position.vue
+++ b/pages/exchange/open-position.vue
@@ -739,7 +739,7 @@
-
{{ $t("contract.i4") }}:
@@ -755,7 +755,7 @@
}}
USDT
-->
-
{{ $t("contract.i7") }}:
diff --git a/static/chart_main/sevencoin.js b/static/chart_main/sevencoin.js
index a57be43..90a3078 100644
--- a/static/chart_main/sevencoin.js
+++ b/static/chart_main/sevencoin.js
@@ -276,8 +276,17 @@ $(function () {
adjustToEasternTime(date) {
let timestamp;
- // 调整时间为美国东部时间
- timestamp = date - (-28800000)+(new Date(new Date().getTime()).getTimezoneOffset()* 60 * 1000) - 46800000;
+ // 判断日期是否在夏令时
+ const dates = new Date(date);
+ const isInEDT = this.dateIsInEDT(dates);
+ // 根据是否在夏令时来调整时间
+ if (isInEDT) {
+ // 在夏令时期间
+ timestamp = date - (-28800000)+(new Date(new Date().getTime()).getTimezoneOffset()* 60 * 1000) - 43200000; // 使用43200000毫秒 = 12小时
+ } else {
+ // 在冬令时期间
+ timestamp = date - (-28800000)+(new Date(new Date().getTime()).getTimezoneOffset()* 60 * 1000) - 46800000; // 使用46800000毫秒 = 13小时
+ }
// 创建新的日期对象,并使用调整后的时间戳
const adjustedDate = new Date(timestamp);
@@ -287,9 +296,9 @@ $(function () {
// 判断日期是否在夏令时(简化的逻辑,实际应用中需要考虑更多的边界情况)
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
-
+ const start = new Date(Date.UTC(year, 2, 8, 18)); // March, 2nd Sunday
+ const end = new Date(Date.UTC(year, 10, 3, 18)); // November, 1st Sunday
+ console.log(start);
start.setUTCDate(14 - start.getUTCDay());
end.setUTCDate(7 - end.getUTCDay());
diff --git a/utils/class/date.js b/utils/class/date.js
index 7095eff..107f6df 100644
--- a/utils/class/date.js
+++ b/utils/class/date.js
@@ -1,3 +1,87 @@
+// /**
+// * 日期时间处理的工具库
+// *
+// * @author lautin
+// * @created 2019-11-19 11:36:02
+// */
+// function getTimeZoneOffset(time) {
+// const date = new Date(time);
+// // 获取时区偏移值,返回分钟数
+// // let offset = date.getTimezoneOffset();
+// let offset = 0;
+// return time + offset * 60 * 1000;
+// }
+
+// /**
+// * 将时间戳转化成时间对象的方法
+// * @param {mixed} time 传入一个时间戳或者时间对象
+// */
+// function time2Date(time, isOffset = false) {
+
+// let date;
+
+// if (time.constructor == Date) { // 传入一个时间对象
+// date = time;
+
+// } else { // 传入一个时间戳
+// // 检测时间戳的长度,确保为ms
+// if (time.toString().length <= 10) {
+// time = Number(time) * 1000;
+// }
+// // 是否对时差进行转化
+// if (isOffset) {
+// // time = getTimeZoneOffset(time);
+// }
+
+// // 转化成日期时间对象
+// date = new Date(time);
+// }
+
+// return date;
+// }
+
+
+// /**
+// * 将指定日期格式化输出,
+// * @param string|object time 输入日期,为一个Date.now()或者Date.UTC返回的时间戳
+// * @param string format 输出的格式
+// * @param boolean isOffset 是否考虑时区
+// */
+// function parseTime(time, isOffset = false, cformat = null) {
+
+// // 设置默认格式
+// let format = cformat || '{y}-{m}-{d} {h}:{i}:{s}';
+// time = time + 8 * 3600;
+// const date = time2Date(time, isOffset);
+
+// // 将日期时间值存入对象中
+// const dataObj = {
+// y: date.getFullYear(),
+// m: date.getMonth() + 1, // 显示月份值需要+1
+// d: date.getDate(),
+// h: date.getHours(),
+// i: date.getMinutes(),
+// s: date.getSeconds(),
+// a: date.getDay()
+// };
+// console.log(date);
+// // 星期值需要转化为中文
+// dataObj.a = '星期' + ['日', '一', '二', '三', '四', '五', '六'][dataObj.a];
+
+// // 匹配{}中的y|m|d...部分,分别替换不同的值
+// // const result = format.replace(/{(y|m|d|h|i|s|a)+}/g, (segment, key) => {
+// // // 由索引提取值
+// // let value = dataObj[key];
+// // // 给值添加前导0
+// // if (segment.length > 0 && value < 10) value = '0' + value;
+// // return value || 0;
+// // });
+// // time = time + 8 * 3600 * 1000; // 增加8小时
+// const result = date.toJSON().substr(0, 19).replace('T', ' ');
+// // console.log(result);
+// return result;
+// }
+
/**
* 日期时间处理的工具库
*
@@ -7,8 +91,8 @@
function getTimeZoneOffset(time) {
const date = new Date(time);
// 获取时区偏移值,返回分钟数
- // let offset = date.getTimezoneOffset();
- let offset = 0;
+ let offset = date.getTimezoneOffset();
+ // let offset = 0;
return time + offset * 60 * 1000;
}
@@ -28,13 +112,17 @@ function time2Date(time, isOffset = false) {
if (time.toString().length <= 10) {
time = Number(time) * 1000;
}
+ let timeN;
// 是否对时差进行转化
if (isOffset) {
- // time = getTimeZoneOffset(time);
- }
+ timeN = getTimeZoneOffset(time);
+ }else{
+ // 这也是对时差进行转换,不需要在每个处理时间格式的组件中修改isOffset为true
+ timeN = time-(-28800000)+(new Date(new Date().getTime()).getTimezoneOffset()* 60 * 1000);
+ }
// 转化成日期时间对象
- date = new Date(time);
+ date = new Date(timeN);
}
return date;
@@ -51,7 +139,8 @@ function parseTime(time, isOffset = false, cformat = null) {
// 设置默认格式
let format = cformat || '{y}-{m}-{d} {h}:{i}:{s}';
- time = time + 8 * 3600;
+ // let format = cformat || '{m}/{d}/{y} {h}:{i}:{s}';
+
const date = time2Date(time, isOffset);
// 将日期时间值存入对象中
@@ -64,26 +153,21 @@ function parseTime(time, isOffset = false, cformat = null) {
s: date.getSeconds(),
a: date.getDay()
};
- console.log(date);
+
// 星期值需要转化为中文
dataObj.a = '星期' + ['日', '一', '二', '三', '四', '五', '六'][dataObj.a];
// 匹配{}中的y|m|d...部分,分别替换不同的值
- // const result = format.replace(/{(y|m|d|h|i|s|a)+}/g, (segment, key) => {
- // // 由索引提取值
- // let value = dataObj[key];
- // // 给值添加前导0
- // if (segment.length > 0 && value < 10) value = '0' + value;
- // return value || 0;
- // });
- // time = time + 8 * 3600 * 1000; // 增加8小时
- const result = date.toJSON().substr(0, 19).replace('T', ' ');
- // console.log(result);
+ const result = format.replace(/{(y|m|d|h|i|s|a)+}/g, (segment, key) => {
+ // 由索引提取值
+ let value = dataObj[key];
+ // 给值添加前导0
+ if (segment.length > 0 && value < 10) value = '0' + value;
+ return value || 0;
+ });
return result;
}
-
-
/**
* 发布日期的特定显示方式,
* @param {string|number} time 显示日期的时间戳