format.ts
3.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/**
* @description 手机号格式化显示 123****5678
* @param {String|Number} num
* @returns {String}
*/
export function formatPhoneNo(num): string {
return num.toString().replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
}
/**
* 格式化Email为 h****@b2bwings.com 的格式
* @param {*} str
*/
export function formatEmail(str): string {
if (!str)
return ''
const i = str.indexOf('@')
if (i <= 0)
return ''
const start = str.substring(0, 1)
const end = str.substring(i)
return `${start}****${end}`
}
/**
* @description 数字千分位
* @param {number|string} num
* @author sheng
* @date 2020/04/26
*/
export function thousandBitSeparator(num): string {
return num && (num.toString().indexOf('.') !== -1
? num.toString().replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) { return $1 + ","}) :
num.toString().replace(/(\d)(?=(\d{3})+$)/g, function ($0, $1) { return $1 + "," }))
}
/**
* 获取该日开始时间 零时零分零秒
* @param {number} stmp 毫秒时间戳
* @returns {number} 毫秒时间戳
*/
export function getDateStartTime(stmp): number {
return new Date(new Date(Number(stmp)).toLocaleDateString()).getTime()
}
/**
* 获取该日结束时间 23时59分59秒
* @param {date} date 毫秒时间戳
* @returns {number} 毫秒时间戳
*/
export function getDateEndTime(stmp): Date {
return new Date(
new Date(new Date(Number(stmp)).toLocaleDateString()).getTime() +
24 * 60 * 60 * 1000 -
1
)
}
/**
* 日期格式化
* @param {*} fmt
* @param {*} time 毫秒时间戳
*/
export function dateFormat(fmt, time): string {
let ret
const newDate = new Date() // 实例化一个Date对象
newDate.setTime(time)
const opt = {
"Y+": newDate.getFullYear().toString(), // 年
"M+": (newDate.getMonth() + 1).toString(), // 月
"D+": newDate.getDate().toString(), // 日
"h+": newDate.getHours().toString(), // 时
"m+": newDate.getMinutes().toString(), // 分
"s+": newDate.getSeconds().toString() // 秒
}
for (const k in opt) {
ret = new RegExp("(" + k + ")").exec(fmt)
if (ret) {
fmt = fmt.replace(ret[1], (ret[1].length === 1) ?
(opt[k]) :
(opt[k].padStart(ret[1].length, "0")))
}
}
return fmt
}
/**
* 请求参数格式化为字符串
* @param {Object} query
* @author sheng
* @date 2020/06/23
*/
export function formatQuery(query): string {
if (typeof query !== 'object') return ''
const params = []
if (query) {
for (const item in query) {
const vals = query[item]
if (vals !== undefined) params.push(item + '=' + query[item])
}
}
return params.length ? '?' + params.join('&') : ''
}
/** minutes */
export function getRemainTime(minutes): string {
/** 剩余小时 */
const hour = Math.floor(minutes / 60)
/** 剩余分钟 */
const min = Math.round(minutes % 60)
return hour <= 0 ? `${min}分钟` : `${hour}小时${min}分钟`
}