From 51344a5967df87a90904e321ee8dd636c9ac5999 Mon Sep 17 00:00:00 2001 From: zhangjinlong Date: Mon, 27 Mar 2023 18:18:29 +0800 Subject: [PATCH] =?UTF-8?q?Vue3=E9=87=8D=E6=9E=84=EF=BC=9A=E5=85=AC?= =?UTF-8?q?=E4=BC=97=E5=8F=B7=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/dateUtils.ts | 79 ++++++ src/views/mp/statistics/index.vue | 404 +++++++++++++++++++++++++++++- 2 files changed, 482 insertions(+), 1 deletion(-) create mode 100644 src/utils/dateUtils.ts diff --git a/src/utils/dateUtils.ts b/src/utils/dateUtils.ts new file mode 100644 index 00000000..617a88af --- /dev/null +++ b/src/utils/dateUtils.ts @@ -0,0 +1,79 @@ +/** + * 将毫秒,转换成时间字符串。例如说,xx 分钟 + * + * @param ms 毫秒 + * @returns {string} 字符串 + */ +export function getDate(ms) { + const day = Math.floor(ms / (24 * 60 * 60 * 1000)) + const hour = Math.floor(ms / (60 * 60 * 1000) - day * 24) + const minute = Math.floor(ms / (60 * 1000) - day * 24 * 60 - hour * 60) + const second = Math.floor(ms / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60) + if (day > 0) { + return day + '天' + hour + '小时' + minute + '分钟' + } + if (hour > 0) { + return hour + '小时' + minute + '分钟' + } + if (minute > 0) { + return minute + '分钟' + } + if (second > 0) { + return second + '秒' + } else { + return 0 + '秒' + } +} + +export function beginOfDay(date) { + return new Date(date.getFullYear(), date.getMonth(), date.getDate()) +} + +export function endOfDay(date) { + return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999) +} + +export function betweenDay(date1, date2) { + date1 = convertDate(date1) + date2 = convertDate(date2) + // 计算差值 + return Math.floor((date2.getTime() - date1.getTime()) / (24 * 3600 * 1000)) +} + +export function formatDate(date, fmt) { + date = convertDate(date) + const o = { + 'M+': date.getMonth() + 1, //月份 + 'd+': date.getDate(), //日 + 'H+': date.getHours(), //小时 + 'm+': date.getMinutes(), //分 + 's+': date.getSeconds(), //秒 + 'q+': Math.floor((date.getMonth() + 3) / 3), //季度 + S: date.getMilliseconds() //毫秒 + } + if (/(y+)/.test(fmt)) { + // 年份 + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + for (const k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace( + RegExp.$1, + RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length) + ) + } + } + return fmt +} + +export function addTime(date, time) { + date = convertDate(date) + return new Date(date.getTime() + time) +} + +export function convertDate(date) { + if (typeof date === 'string') { + return new Date(date) + } + return date +} diff --git a/src/views/mp/statistics/index.vue b/src/views/mp/statistics/index.vue index 497f72ec..9411b674 100644 --- a/src/views/mp/statistics/index.vue +++ b/src/views/mp/statistics/index.vue @@ -1,3 +1,405 @@ + +