From 29ab25c568f11eb6559716f82afee0e78efd688b Mon Sep 17 00:00:00 2001 From: liaoxinyu Date: Wed, 9 Oct 2024 10:08:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E5=B8=81=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/class/date.js | 84 ++++++++++++++++++++++++++++++++++-- src/views/wallet/funding.vue | 6 ++- 2 files changed, 84 insertions(+), 6 deletions(-) diff --git a/src/utils/class/date.js b/src/utils/class/date.js index 66e92db..a536407 100644 --- a/src/utils/class/date.js +++ b/src/utils/class/date.js @@ -8,6 +8,7 @@ function getTimeZoneOffset(time) { const date = new Date(time); // 获取时区偏移值,返回分钟数 let offset = date.getTimezoneOffset(); + // return time + offset * 60 * 1000; if(offset == 240){ return time; } @@ -21,8 +22,7 @@ function getTimeZoneOffset(time) { function time2Date(time, isOffset = false) { let date; - date = time; - + date = time; if (time.constructor == Date) { // 传入一个时间对象 date = time; @@ -31,9 +31,13 @@ function time2Date(time, isOffset = false) { if (time.toString().length <= 10) { time = Number(time) * 1000; } - // 是否对时差进行转化 + // let timeN; + // // 是否对时差进行转化 // if (isOffset) { time = getTimeZoneOffset(time); + // }else{ + // // 这也是对时差进行转换,不需要在每个处理时间格式的组件中修改isOffset为true + // timeN = time-(-28800000)+(new Date(new Date().getTime()).getTimezoneOffset()* 60 * 1000); // } // 转化成日期时间对象 date = new Date(time); @@ -79,6 +83,77 @@ function parseTime(time, isOffset = false, cformat = null) { return result; } +function getTimeZoneOffset1(time) { + const date = new Date(time); + // 获取时区偏移值,返回分钟数 + let offset = date.getTimezoneOffset(); + return time + offset * 60 * 1000; +} + +function time2Date1(time, isOffset = false) { + + let date; + if (time.constructor == Date) { // 传入一个时间对象 + date = time; + + } else { // 传入一个时间戳 + // 检测时间戳的长度,确保为ms + if (time.toString().length <= 10) { + time = Number(time) * 1000; + } + let timeN; + // 是否对时差进行转化 + if (isOffset) { + timeN = getTimeZoneOffset1(time); + }else{ + // 这也是对时差进行转换,不需要在每个处理时间格式的组件中修改isOffset为true + timeN = time-(-28800000)+(new Date(new Date().getTime()).getTimezoneOffset()* 60 * 1000); + } + // 转化成日期时间对象 + date = new Date(timeN); + } + return date; +} + +/** + * 将指定日期格式化输出, + * @param string|object time 输入日期,为一个Date.now()或者Date.UTC返回的时间戳 + * @param string format 输出的格式 + * @param boolean isOffset 是否考虑时区 + */ +function parseTime1(time, isOffset = false, cformat = null) { + + // 设置默认格式 + // let format = cformat || '{y}-{m}-{d} {h}:{i}:{s}'; + let format = cformat || '{y}-{m}-{d} {h}:{i}:{s} {a}'; + + const date = time2Date1(time, isOffset); + + // 将日期时间值存入对象中 + const dataObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, // 显示月份值需要+1 + d: date.getDate(), + h: date.getHours() % 12 || 12, + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getHours() >= 12 ? 'PM' : 'AM', + w: date.getDay() + }; + + // 星期值需要转化为中文 + dataObj.w = '星期' + ['日', '一', '二', '三', '四', '五', '六'][dataObj.w]; + + // 匹配{}中的y|m|d...部分,分别替换不同的值 + const result = format.replace(/{(y|m|d|h|i|s|a|w)+}/g, (segment, key) => { + // 由索引提取值 + let value = dataObj[key]; + // 给值添加前导0 + if (segment.length > 0 && value < 10) value = '0' + value; + return value || 0; + }); + return result; +} /** * 发布日期的特定显示方式, @@ -123,5 +198,6 @@ Object.assign(Date, { export default{ time2Date, parseTime, - pubTime + pubTime, + parseTime1 } diff --git a/src/views/wallet/funding.vue b/src/views/wallet/funding.vue index 39cf5dd..c5418aa 100644 --- a/src/views/wallet/funding.vue +++ b/src/views/wallet/funding.vue @@ -93,7 +93,8 @@ eth {{ item.coin_name }} - {{ item.datetime|parseTime }} + + {{ parseTime1(item.datetime) }} {{ item.address }} {{ item.amount }} {{item.withdrawal_fee}} @@ -149,6 +150,7 @@