Commit c0249c52518abc807810ce048c1a6837a670d091
1 parent
acaa546b
优化 工具函数-startEndTimeFormat,添加配置参数 toDay;
Showing
1 changed file
with
38 additions
and
22 deletions
src/utils/utils.ts
... | ... | @@ -2,11 +2,11 @@ |
2 | 2 | * @Author: wangqiang@feewee.cn |
3 | 3 | * @Date: 2022-05-11 15:58:56 |
4 | 4 | * @LastEditors: wangqiang@feewee.cn |
5 | - * @LastEditTime: 2023-03-22 09:49:32 | |
5 | + * @LastEditTime: 2023-05-06 14:51:12 | |
6 | 6 | */ |
7 | 7 | |
8 | 8 | import { checkNull } from "@/utils/validate"; |
9 | -import moment from 'moment'; | |
9 | +import moment from "moment"; | |
10 | 10 | |
11 | 11 | /* eslint no-useless-escape:0 import/prefer-default-export:0 */ |
12 | 12 | const reg = |
... | ... | @@ -84,7 +84,7 @@ export function priceToThousands( |
84 | 84 | */ |
85 | 85 | export const formatNumber = (num: number, digits: number = 2): number => { |
86 | 86 | let number = priceToThousands(num, digits); |
87 | - if (isNumber(number = number.replace(/,/g, ""))) { | |
87 | + if (isNumber((number = number.replace(/,/g, "")))) { | |
88 | 88 | return +number; |
89 | 89 | } else { |
90 | 90 | return 0; |
... | ... | @@ -100,6 +100,7 @@ export function formatNumberShow(num: number | undefined | null): number | "-" { |
100 | 100 | } |
101 | 101 | |
102 | 102 | interface StartEndTimeFormatConfig { |
103 | + toDay?: boolean; // 是否仅精确到天 | |
103 | 104 | toSecond?: boolean; // 是否精确到秒 |
104 | 105 | interval?: string; // 间隔文字 |
105 | 106 | } |
... | ... | @@ -113,25 +114,40 @@ interface StartEndTimeFormatConfig { |
113 | 114 | * @param {StartEndTimeFormatConfig} config |
114 | 115 | * @return {string} |
115 | 116 | */ |
116 | -export const startEndTimeFormat = ( | |
117 | - item: any, | |
118 | - dateStartKey: string, | |
119 | - dateEndKey: string, | |
120 | - config: StartEndTimeFormatConfig = {}, | |
121 | -): string => { | |
122 | - const { toSecond = false, interval = '至' } = config; | |
123 | - let result: string = ''; | |
117 | +export function startEndTimeFormat<T>( | |
118 | + item: T, | |
119 | + dateStartKey: keyof T, | |
120 | + dateEndKey: keyof T, | |
121 | + config: StartEndTimeFormatConfig = {} | |
122 | +): string { | |
123 | + const { toDay = false, toSecond = false, interval = "至" } = config; | |
124 | + let result: string = ""; | |
124 | 125 | if (!item[dateStartKey]) return result; |
125 | - result += item[dateStartKey] ? moment(item[dateStartKey]).format(`YYYY-MM-DD HH:mm${toSecond ? ':ss' : ''}`) : ''; | |
126 | + result += item[dateStartKey] | |
127 | + ? moment(item[dateStartKey]).format( | |
128 | + toDay ? "YYYY-MM-DD" : `YYYY-MM-DD HH:mm${toSecond ? ":ss" : ""}` | |
129 | + ) | |
130 | + : ""; | |
126 | 131 | if (!item[dateEndKey]) return result; |
127 | 132 | result += item[dateEndKey] |
128 | - ? moment(item[dateStartKey]).get('year') === moment(item[dateEndKey]).get('year') | |
129 | - ? moment(item[dateStartKey]).get('month') === moment(item[dateEndKey]).get('month') | |
130 | - ? moment(item[dateStartKey]).get('D') === moment(item[dateEndKey]).get('D') | |
131 | - ? `${interval}${moment(item[dateEndKey]).format(`HH:mm${toSecond ? ':ss' : ''}`)}` | |
132 | - : `${interval}${moment(item[dateEndKey]).format(`MM-DD HH:mm${toSecond ? ':ss' : ''}`)}` | |
133 | - : `${interval}${moment(item[dateEndKey]).format(`MM-DD HH:mm${toSecond ? ':ss' : ''}`)}` | |
134 | - : `${interval}${moment(item[dateEndKey]).format(`YYYY-MM-DD HH:mm${toSecond ? ':ss' : ''}`)}` | |
135 | - : ''; | |
136 | - return result || '-'; | |
137 | -}; | |
133 | + ? moment(item[dateStartKey]).get("year") === | |
134 | + moment(item[dateEndKey]).get("year") | |
135 | + ? moment(item[dateStartKey]).get("month") === | |
136 | + moment(item[dateEndKey]).get("month") | |
137 | + ? moment(item[dateStartKey]).get("D") === | |
138 | + moment(item[dateEndKey]).get("D") | |
139 | + ? `${interval}${moment(item[dateEndKey]).format( | |
140 | + toDay ? "MM-DD" : `HH:mm${toSecond ? ":ss" : ""}` | |
141 | + )}` | |
142 | + : `${interval}${moment(item[dateEndKey]).format( | |
143 | + toDay ? "MM-DD" : `MM-DD HH:mm${toSecond ? ":ss" : ""}` | |
144 | + )}` | |
145 | + : `${interval}${moment(item[dateEndKey]).format( | |
146 | + toDay ? "MM-DD" : `MM-DD HH:mm${toSecond ? ":ss" : ""}` | |
147 | + )}` | |
148 | + : `${interval}${moment(item[dateEndKey]).format( | |
149 | + toDay ? "YYYY-MM-DD" : `YYYY-MM-DD HH:mm${toSecond ? ":ss" : ""}` | |
150 | + )}` | |
151 | + : ""; | |
152 | + return result || "-"; | |
153 | +} | ... | ... |