tools-min-ns 1.14.1 → 1.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,6 +5,11 @@ cnpm i tools-min-ns --save
5
5
  ```
6
6
 
7
7
  # updates
8
+
9
+ ## v1.14.2
10
+ > StringUtil getUuiD 重构随机ID效率更高
11
+ ## v1.14.2
12
+ > DateUtil 日期格式化兼容优化
8
13
  ## v1.14.1
9
14
  > DateUtil 日期格式化兼容YYYY-MM-DD
10
15
 
@@ -37,6 +37,7 @@ declare namespace DateUtil {
37
37
  const parseDate: (date: Date | string | number, format?: string) => Date;
38
38
  /**
39
39
  * 将日期格式化成指定格式的字符串
40
+ * 兼容YYYY-MM-DD/yyyy-MM-dd
40
41
  * @param {Date | Number | String} date 要格式化的日期,不传时默认当前时间,也可以是一个时间戳/字符串
41
42
  * @param {String} format 目标字符串格式,支持的字符有:y,Y,M,d,D,q,w,H,h,m,S,默认:yyyy-MM-dd HH:mm:ss
42
43
  * @returns {String} 返回格式化后的日期字符串,日期不合法时返回字符串 'invalid date'
@@ -80,6 +80,7 @@ var DateUtil;
80
80
  };
81
81
  /**
82
82
  * 将日期格式化成指定格式的字符串
83
+ * 兼容YYYY-MM-DD/yyyy-MM-dd
83
84
  * @param {Date | Number | String} date 要格式化的日期,不传时默认当前时间,也可以是一个时间戳/字符串
84
85
  * @param {String} format 目标字符串格式,支持的字符有:y,Y,M,d,D,q,w,H,h,m,S,默认:yyyy-MM-dd HH:mm:ss
85
86
  * @returns {String} 返回格式化后的日期字符串,日期不合法时返回字符串 'invalid date'
@@ -107,39 +108,22 @@ var DateUtil;
107
108
  } else {
108
109
  return 'invalid date';
109
110
  }
110
- date = date;
111
- var map = {
112
- y: date.getFullYear(),
113
- Y: date.getFullYear(),
114
- M: date.getMonth() + 1,
115
- d: date.getDate(),
116
- D: date.getDate(),
117
- q: Math.floor((date.getMonth() + 3) / 3),
118
- w: ['', '一', '二', '三', '四', '五', '六'][date.getDay()],
119
- H: date.getHours(),
120
- h: date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,
121
- m: date.getMinutes(),
122
- S: date.getMilliseconds(),
123
- s: date.getSeconds()
124
- };
125
- var formatNumber = function formatNumber(n) {
126
- return n.toString().padStart(2, '0');
127
- };
128
- var formatMilliseconds = function formatMilliseconds(n) {
129
- return n.toString().padStart(3, '0');
111
+ var d = date;
112
+ var formatChars = {
113
+ YYYY: d.getFullYear().toString(),
114
+ yyyy: d.getFullYear().toString(),
115
+ MM: ('0' + (d.getMonth() + 1)).slice(-2),
116
+ DD: ('0' + d.getDate()).slice(-2),
117
+ dd: ('0' + d.getDate()).slice(-2),
118
+ HH: ('0' + d.getHours()).slice(-2),
119
+ mm: ('0' + d.getMinutes()).slice(-2),
120
+ ss: ('0' + d.getSeconds()).slice(-2)
130
121
  };
131
- return format.replace(/(y+|Y+|M+|d+|D+|q+|w+|H+|h+|m+|s+|S+)/g, function (match) {
132
- var char = match[0];
133
- var result = map[char];
134
- if (char.toLowerCase() === 'y') {
135
- result = result.toString().substr(4 - match.length);
136
- } else if (char === 'S') {
137
- result = formatMilliseconds(result);
138
- } else if (['M', 'd', 'D', 'H', 'h', 'm', 's'].includes(char)) {
139
- result = formatNumber(result);
140
- }
141
- return result;
142
- });
122
+ var formattedDate = format;
123
+ for (var char in formatChars) {
124
+ formattedDate = formattedDate.replace(char, formatChars[char]);
125
+ }
126
+ return formattedDate;
143
127
  };
144
128
  /**
145
129
  * 将一个日期格式化成友好格式,比如,1分钟以内的返回“刚刚”,
@@ -540,7 +540,12 @@ var StringUtil;
540
540
  if (randomLength === void 0) {
541
541
  randomLength = 9;
542
542
  }
543
- return Number(Math.random().toString().slice(2, randomLength + 2) + Date.now()).toString(36).slice(2, randomLength + 2);
543
+ var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
544
+ var result = '';
545
+ for (var i = 0; i < randomLength; i++) {
546
+ result += chars[Math.floor(Math.random() * 62)]; // 生成一个随机字符,然后添加到结果字符串中
547
+ }
548
+ return result;
544
549
  }
545
550
  StringUtil.getUuiD = getUuiD;
546
551
  /** 默认颜色数组 */
@@ -37,6 +37,7 @@ declare namespace DateUtil {
37
37
  const parseDate: (date: Date | string | number, format?: string) => Date;
38
38
  /**
39
39
  * 将日期格式化成指定格式的字符串
40
+ * 兼容YYYY-MM-DD/yyyy-MM-dd
40
41
  * @param {Date | Number | String} date 要格式化的日期,不传时默认当前时间,也可以是一个时间戳/字符串
41
42
  * @param {String} format 目标字符串格式,支持的字符有:y,Y,M,d,D,q,w,H,h,m,S,默认:yyyy-MM-dd HH:mm:ss
42
43
  * @returns {String} 返回格式化后的日期字符串,日期不合法时返回字符串 'invalid date'
@@ -90,6 +90,7 @@ var DateUtil;
90
90
  };
91
91
  /**
92
92
  * 将日期格式化成指定格式的字符串
93
+ * 兼容YYYY-MM-DD/yyyy-MM-dd
93
94
  * @param {Date | Number | String} date 要格式化的日期,不传时默认当前时间,也可以是一个时间戳/字符串
94
95
  * @param {String} format 目标字符串格式,支持的字符有:y,Y,M,d,D,q,w,H,h,m,S,默认:yyyy-MM-dd HH:mm:ss
95
96
  * @returns {String} 返回格式化后的日期字符串,日期不合法时返回字符串 'invalid date'
@@ -117,39 +118,22 @@ var DateUtil;
117
118
  } else {
118
119
  return 'invalid date';
119
120
  }
120
- date = date;
121
- var map = {
122
- y: date.getFullYear(),
123
- Y: date.getFullYear(),
124
- M: date.getMonth() + 1,
125
- d: date.getDate(),
126
- D: date.getDate(),
127
- q: Math.floor((date.getMonth() + 3) / 3),
128
- w: ['', '一', '二', '三', '四', '五', '六'][date.getDay()],
129
- H: date.getHours(),
130
- h: date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,
131
- m: date.getMinutes(),
132
- S: date.getMilliseconds(),
133
- s: date.getSeconds()
134
- };
135
- var formatNumber = function formatNumber(n) {
136
- return n.toString().padStart(2, '0');
137
- };
138
- var formatMilliseconds = function formatMilliseconds(n) {
139
- return n.toString().padStart(3, '0');
121
+ var d = date;
122
+ var formatChars = {
123
+ YYYY: d.getFullYear().toString(),
124
+ yyyy: d.getFullYear().toString(),
125
+ MM: ('0' + (d.getMonth() + 1)).slice(-2),
126
+ DD: ('0' + d.getDate()).slice(-2),
127
+ dd: ('0' + d.getDate()).slice(-2),
128
+ HH: ('0' + d.getHours()).slice(-2),
129
+ mm: ('0' + d.getMinutes()).slice(-2),
130
+ ss: ('0' + d.getSeconds()).slice(-2)
140
131
  };
141
- return format.replace(/(y+|Y+|M+|d+|D+|q+|w+|H+|h+|m+|s+|S+)/g, function (match) {
142
- var char = match[0];
143
- var result = map[char];
144
- if (char.toLowerCase() === 'y') {
145
- result = result.toString().substr(4 - match.length);
146
- } else if (char === 'S') {
147
- result = formatMilliseconds(result);
148
- } else if (['M', 'd', 'D', 'H', 'h', 'm', 's'].includes(char)) {
149
- result = formatNumber(result);
150
- }
151
- return result;
152
- });
132
+ var formattedDate = format;
133
+ for (var char in formatChars) {
134
+ formattedDate = formattedDate.replace(char, formatChars[char]);
135
+ }
136
+ return formattedDate;
153
137
  };
154
138
  /**
155
139
  * 将一个日期格式化成友好格式,比如,1分钟以内的返回“刚刚”,
@@ -550,7 +550,12 @@ var StringUtil;
550
550
  if (randomLength === void 0) {
551
551
  randomLength = 9;
552
552
  }
553
- return Number(Math.random().toString().slice(2, randomLength + 2) + Date.now()).toString(36).slice(2, randomLength + 2);
553
+ var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
554
+ var result = '';
555
+ for (var i = 0; i < randomLength; i++) {
556
+ result += chars[Math.floor(Math.random() * 62)]; // 生成一个随机字符,然后添加到结果字符串中
557
+ }
558
+ return result;
554
559
  }
555
560
  StringUtil.getUuiD = getUuiD;
556
561
  /** 默认颜色数组 */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tools-min-ns",
3
3
  "description": "工具包适用于前端以及node",
4
- "version": "1.14.1",
4
+ "version": "1.14.3",
5
5
  "main": "lib/index.js",
6
6
  "license": "MIT",
7
7
  "author": "nanshen",