tools-for-js 1.3.1 → 1.4.0
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 +10 -3
- package/lib/index.js +48 -5
- package/lib/utils/common.js +1 -26
- package/lib/utils/random.js +100 -0
- package/lib/utils/string.js +1 -21
- package/lib/utils/time.js +93 -45
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,14 +25,13 @@ import { API } from 'tools-for-js'
|
|
|
25
25
|
| 将对象中的键转小写 | lowercaseKeys |
|
|
26
26
|
| 将对象中的键转大写 | upperCaseKeys |
|
|
27
27
|
| 获取时间间隔 | getTimeDistance |
|
|
28
|
-
|
|
|
28
|
+
| 获取时间戳 | timeStamp |
|
|
29
29
|
| 获取倒计时 | countDown |
|
|
30
30
|
| 距离当前时间状况 | transformDate |
|
|
31
31
|
| 变量类型判断 | IsType |
|
|
32
32
|
| 深拷贝变量 | deepCopy |
|
|
33
33
|
| 校验空值参数 | isEmpty |
|
|
34
34
|
| 校验两个参数是否相等 | isEqual |
|
|
35
|
-
| 生成 UUID | createUUID |
|
|
36
35
|
| 数组去重 | deWeightArray |
|
|
37
36
|
| 计算树的最后节点某字段的总和 | treeLastChildSum |
|
|
38
37
|
| 校验数组对象中是否存在指定的字段为空 | checkKeyEmpty |
|
|
@@ -55,4 +54,12 @@ import { API } from 'tools-for-js'
|
|
|
55
54
|
| 将路径中的反斜杠字符 \ 替换为斜杠 / | replacePath |
|
|
56
55
|
| 切割/获取文件名 | splitToFileName |
|
|
57
56
|
| 数组反选 | invertSelection |
|
|
58
|
-
|
|
|
57
|
+
| 创建时间对象 | createDate |
|
|
58
|
+
| 获取结束时间 | getExpiresEndTime |
|
|
59
|
+
| 判断是否过期 | isExpires |
|
|
60
|
+
| 随机数字 | randomNum |
|
|
61
|
+
| 随机字符串 | randomCode |
|
|
62
|
+
| 随机颜色 | randomColor |
|
|
63
|
+
| 创建 UUID | createUUID |
|
|
64
|
+
| 随机 MAC 地址 | randomMac |
|
|
65
|
+
| 待更新 | function |
|
package/lib/index.js
CHANGED
|
@@ -57,10 +57,16 @@ Object.defineProperty(exports, "countNumber", {
|
|
|
57
57
|
return _calculate.countNumber;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "createDate", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _time.createDate;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
60
66
|
Object.defineProperty(exports, "createUUID", {
|
|
61
67
|
enumerable: true,
|
|
62
68
|
get: function get() {
|
|
63
|
-
return
|
|
69
|
+
return _random.createUUID;
|
|
64
70
|
}
|
|
65
71
|
});
|
|
66
72
|
Object.defineProperty(exports, "dateFormat", {
|
|
@@ -93,16 +99,22 @@ Object.defineProperty(exports, "formatDate", {
|
|
|
93
99
|
return _time.formatDate;
|
|
94
100
|
}
|
|
95
101
|
});
|
|
96
|
-
Object.defineProperty(exports, "
|
|
102
|
+
Object.defineProperty(exports, "getAfterNDays", {
|
|
97
103
|
enumerable: true,
|
|
98
104
|
get: function get() {
|
|
99
|
-
return
|
|
105
|
+
return _time.getAfterNDays;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
Object.defineProperty(exports, "getExpiresEndTime", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function get() {
|
|
111
|
+
return _time.getExpiresEndTime;
|
|
100
112
|
}
|
|
101
113
|
});
|
|
102
|
-
Object.defineProperty(exports, "
|
|
114
|
+
Object.defineProperty(exports, "getPagination", {
|
|
103
115
|
enumerable: true,
|
|
104
116
|
get: function get() {
|
|
105
|
-
return
|
|
117
|
+
return _array.getPagination;
|
|
106
118
|
}
|
|
107
119
|
});
|
|
108
120
|
Object.defineProperty(exports, "getStrLength", {
|
|
@@ -141,6 +153,12 @@ Object.defineProperty(exports, "isEqual", {
|
|
|
141
153
|
return _common.isEqual;
|
|
142
154
|
}
|
|
143
155
|
});
|
|
156
|
+
Object.defineProperty(exports, "isExpires", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function get() {
|
|
159
|
+
return _time.isExpires;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
144
162
|
Object.defineProperty(exports, "lowercaseKeys", {
|
|
145
163
|
enumerable: true,
|
|
146
164
|
get: function get() {
|
|
@@ -165,6 +183,30 @@ Object.defineProperty(exports, "objectToQs", {
|
|
|
165
183
|
return _object.objectToQs;
|
|
166
184
|
}
|
|
167
185
|
});
|
|
186
|
+
Object.defineProperty(exports, "randomCode", {
|
|
187
|
+
enumerable: true,
|
|
188
|
+
get: function get() {
|
|
189
|
+
return _random.randomCode;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
Object.defineProperty(exports, "randomColor", {
|
|
193
|
+
enumerable: true,
|
|
194
|
+
get: function get() {
|
|
195
|
+
return _random.randomColor;
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
Object.defineProperty(exports, "randomMac", {
|
|
199
|
+
enumerable: true,
|
|
200
|
+
get: function get() {
|
|
201
|
+
return _random.randomMac;
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
Object.defineProperty(exports, "randomNum", {
|
|
205
|
+
enumerable: true,
|
|
206
|
+
get: function get() {
|
|
207
|
+
return _random.randomNum;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
168
210
|
Object.defineProperty(exports, "replacePath", {
|
|
169
211
|
enumerable: true,
|
|
170
212
|
get: function get() {
|
|
@@ -237,4 +279,5 @@ var _array = require("./utils/array");
|
|
|
237
279
|
var _calculate = require("./utils/calculate");
|
|
238
280
|
var _common = require("./utils/common");
|
|
239
281
|
var _string = require("./utils/string");
|
|
282
|
+
var _random = require("./utils/random");
|
|
240
283
|
var _object = require("./utils/object");
|
package/lib/utils/common.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isEqual = exports.isEmpty = exports.deepCopy = exports.
|
|
6
|
+
exports.isEqual = exports.isEmpty = exports.deepCopy = exports.IsType = void 0;
|
|
7
7
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
8
8
|
/*******
|
|
9
9
|
* @description: 变量类型判断
|
|
@@ -112,29 +112,4 @@ var isEqual = exports.isEqual = function isEqual(a, b) {
|
|
|
112
112
|
return false; // 其它类型,均返回false
|
|
113
113
|
}
|
|
114
114
|
return true;
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
/*******
|
|
118
|
-
* @description: 生成UUID
|
|
119
|
-
* UUID(Universally Unique IDentifier) 全局唯一标识符。
|
|
120
|
-
* UUID是一种由算法生成的二进制长度为128位的数字标识符。
|
|
121
|
-
* UUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,
|
|
122
|
-
* 其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。
|
|
123
|
-
* 在理想情况下,任何计算机和计算机集群都不会生成两个相同的UUID。
|
|
124
|
-
* @author: 琴时
|
|
125
|
-
* @param {String} symbol [分隔符] [默认为空]
|
|
126
|
-
* @return {String}
|
|
127
|
-
* @example: createUUID('-') // 生成UUID并使用[-]作为分隔符
|
|
128
|
-
*/
|
|
129
|
-
var createUUID = exports.createUUID = function createUUID() {
|
|
130
|
-
var symbol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
131
|
-
var s = [];
|
|
132
|
-
var hexDigits = '0123456789abcdef';
|
|
133
|
-
for (var i = 0; i < 36; i++) {
|
|
134
|
-
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
|
|
135
|
-
}
|
|
136
|
-
s[14] = '4'; // bits 12-15 of 时间和版本字段设置为0010
|
|
137
|
-
s[19] = hexDigits.substr(s[19] & 0x3 | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
|
|
138
|
-
s[8] = s[13] = s[18] = s[23] = '-';
|
|
139
|
-
return s.join('').replace(/-/g, symbol);
|
|
140
115
|
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.randomCode = exports.createUUID = void 0;
|
|
7
|
+
exports.randomColor = randomColor;
|
|
8
|
+
exports.randomNum = exports.randomMac = void 0;
|
|
9
|
+
/*******
|
|
10
|
+
* @description: 随机数字
|
|
11
|
+
* @author: 琴时
|
|
12
|
+
* @param {Number} length [长度] [默认为6]
|
|
13
|
+
* @return {String}
|
|
14
|
+
*/
|
|
15
|
+
var randomNum = exports.randomNum = function randomNum() {
|
|
16
|
+
var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;
|
|
17
|
+
var result = '';
|
|
18
|
+
var decimalDigits = '0123456789';
|
|
19
|
+
for (var i = 0; i < length; i++) {
|
|
20
|
+
var index = Math.floor(Math.random() * 10); //随机生成一位0~9的数
|
|
21
|
+
result += decimalDigits.charAt(index);
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/*******
|
|
27
|
+
* @description: 随机字符串
|
|
28
|
+
* @author: 琴时
|
|
29
|
+
* @param {Number} length [长度] [默认为6]
|
|
30
|
+
* @return {String}
|
|
31
|
+
*/
|
|
32
|
+
var randomCode = exports.randomCode = function randomCode() {
|
|
33
|
+
var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;
|
|
34
|
+
var result = '';
|
|
35
|
+
var num = '0123456789';
|
|
36
|
+
var lower = 'abcdefghijklmnopqrstuvwxyz';
|
|
37
|
+
var capital = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
38
|
+
var character = num + lower + capital;
|
|
39
|
+
for (var i = 0; i < length; i++) {
|
|
40
|
+
var index = Math.floor(Math.random() * character.length); //随机生成一位0~61的数
|
|
41
|
+
result += character.charAt(index);
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
/*******
|
|
47
|
+
* @description: 随机颜色
|
|
48
|
+
* @author: 琴时
|
|
49
|
+
* @param {Array} exclude [跳过颜色(可选参数),默认为空数组]
|
|
50
|
+
* @return {String}
|
|
51
|
+
*/
|
|
52
|
+
function randomColor() {
|
|
53
|
+
var exclude = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
54
|
+
var hexDigits = '0123456789ABCDEF';
|
|
55
|
+
var color = '#';
|
|
56
|
+
for (var i = 0; i < 6; i++) {
|
|
57
|
+
var index = Math.floor(Math.random() * 16); //随机生成一位0~15的数
|
|
58
|
+
color += hexDigits.charAt(index);
|
|
59
|
+
}
|
|
60
|
+
//如果生成的颜色和默认颜色重复了,则重新生成
|
|
61
|
+
if (exclude.includes(color)) randomColor(exclude);
|
|
62
|
+
return color;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/*******
|
|
66
|
+
* @description: 创建UUID
|
|
67
|
+
* UUID(Universally Unique IDentifier) 全局唯一标识符。
|
|
68
|
+
* UUID是一种由算法生成的二进制长度为128位的数字标识符。
|
|
69
|
+
* UUID的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,
|
|
70
|
+
* 其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。
|
|
71
|
+
* 在理想情况下,任何计算机和计算机集群都不会生成两个相同的UUID。
|
|
72
|
+
* @author: 琴时
|
|
73
|
+
* @param {String} symbol [分隔符] [默认为空]
|
|
74
|
+
* @return {String}
|
|
75
|
+
* @example: createUUID('-') // 生成UUID并使用[-]作为分隔符
|
|
76
|
+
*/
|
|
77
|
+
var createUUID = exports.createUUID = function createUUID() {
|
|
78
|
+
var symbol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '-';
|
|
79
|
+
var s = [];
|
|
80
|
+
var hexDigits = '0123456789abcdef';
|
|
81
|
+
for (var i = 0; i < 36; i++) {
|
|
82
|
+
s[i] = hexDigits.charAt(Math.floor(Math.random() * 16));
|
|
83
|
+
}
|
|
84
|
+
s[14] = '4'; // bits 12-15 of 时间和版本字段设置为0010
|
|
85
|
+
s[19] = hexDigits.charAt(s[19] & 3 | 8); // bits 6-7 of the clock_seq_hi_and_reserved to 01
|
|
86
|
+
s[8] = s[13] = s[18] = s[23] = '-';
|
|
87
|
+
return s.join('').replace(/-/g, symbol);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/*******
|
|
91
|
+
* @description: 随机MAC地址
|
|
92
|
+
* @author: 琴时
|
|
93
|
+
* @return {String}
|
|
94
|
+
*/
|
|
95
|
+
var randomMac = exports.randomMac = function randomMac() {
|
|
96
|
+
return 'XX:XX:XX:XX:XX:XX'.replace(/X/g, function () {
|
|
97
|
+
var hexDigits = '0123456789ABCDEF';
|
|
98
|
+
return hexDigits.charAt(Math.floor(Math.random() * 16));
|
|
99
|
+
});
|
|
100
|
+
};
|
package/lib/utils/string.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.encode = exports.decode = exports.checkPwdStrength = void 0;
|
|
7
|
-
exports.getRandomColor = getRandomColor;
|
|
8
|
-
exports.getStrLength = void 0;
|
|
6
|
+
exports.getStrLength = exports.encode = exports.decode = exports.checkPwdStrength = void 0;
|
|
9
7
|
exports.replacePath = replacePath;
|
|
10
8
|
exports.splitString = splitString;
|
|
11
9
|
exports.splitToFileName = splitToFileName;
|
|
@@ -208,22 +206,4 @@ function splitToFileName(path) {
|
|
|
208
206
|
var lastIndex = path.lastIndexOf('/');
|
|
209
207
|
if (lastIndex === -1) return path;
|
|
210
208
|
return path.substring(lastIndex + 1);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
/*******
|
|
214
|
-
* @description: 生成随机颜色
|
|
215
|
-
* @author: 琴时
|
|
216
|
-
* @param {Array} defaultList [跳过颜色(可选参数),默认为空数组]
|
|
217
|
-
* @return {String}
|
|
218
|
-
*/
|
|
219
|
-
function getRandomColor() {
|
|
220
|
-
var defaultList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
221
|
-
var letters = '0123456789ABCDEF';
|
|
222
|
-
var color = '#';
|
|
223
|
-
for (var i = 0; i < 6; i++) {
|
|
224
|
-
color += letters[Math.floor(Math.random() * 16)];
|
|
225
|
-
}
|
|
226
|
-
//如果生成的颜色和默认颜色重复了,则重新生成
|
|
227
|
-
if (defaultList.includes(color)) getRandomColor(defaultList);
|
|
228
|
-
return color;
|
|
229
209
|
}
|
package/lib/utils/time.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.transformDate = exports.timeStamp = exports.getTimeDistance = exports.formatDate = exports.dateFormat = exports.countDown = void 0;
|
|
6
|
+
exports.transformDate = exports.timeStamp = exports.isExpires = exports.getTimeDistance = exports.getExpiresEndTime = exports.getAfterNDays = exports.formatDate = exports.dateFormat = exports.createDate = exports.countDown = void 0;
|
|
7
7
|
require("dayjs/locale/zh-cn");
|
|
8
8
|
var _relativeTime = _interopRequireDefault(require("dayjs/plugin/relativeTime"));
|
|
9
9
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
@@ -13,28 +13,47 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
|
|
|
13
13
|
_dayjs["default"].locale('zh-cn'); // 全局使用
|
|
14
14
|
|
|
15
15
|
/*******
|
|
16
|
-
* @description:
|
|
16
|
+
* @description: 创建时间对象
|
|
17
17
|
* @author: 琴时
|
|
18
|
-
* @param {
|
|
19
|
-
* @
|
|
20
|
-
* @return {*} 返回格式化后的时间字符串
|
|
18
|
+
* @param {*} date [时间戳|时间字符串|时间对象|或者为空]
|
|
19
|
+
* @return {Date}
|
|
21
20
|
*/
|
|
22
|
-
var
|
|
23
|
-
var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss';
|
|
21
|
+
var createDate = exports.createDate = function createDate(date) {
|
|
24
22
|
var pattern = /^(?=.*T)(?=.*).*$/;
|
|
25
23
|
var patternNum = /^\d*$/;
|
|
26
|
-
if (!date)
|
|
27
|
-
|
|
28
|
-
date = new Date();
|
|
29
|
-
} else if (patternNum.test(date)) {
|
|
24
|
+
if (!date) return new Date(); // 不传参数
|
|
25
|
+
if (patternNum.test(date)) {
|
|
30
26
|
// 时间戳
|
|
31
27
|
date = parseInt(date);
|
|
32
28
|
} else if (typeof date === 'string' && !pattern.test(date)) {
|
|
33
29
|
//兼容ios: 将时间字符串中的'-'替换成'/' 2021-05-20 00:00:00=>2021/05/20 00:00:00
|
|
34
30
|
date = "".concat(date).replace(/-/g, '/');
|
|
35
31
|
}
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
return new Date(date);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/*******
|
|
36
|
+
* @description: 获取时间戳
|
|
37
|
+
* @author: 琴时
|
|
38
|
+
* @param {*} date [时间字符串]/[时间对象]
|
|
39
|
+
* @return {Number} [时间戳]
|
|
40
|
+
*/
|
|
41
|
+
var timeStamp = exports.timeStamp = function timeStamp(date) {
|
|
42
|
+
// const date = +new Date(date) //转换成时间戳
|
|
43
|
+
// const newDate = Date.now() //H5-生成当前时间戳
|
|
44
|
+
return createDate(date).getTime();
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/*******
|
|
48
|
+
* @description: 生成时间格式化
|
|
49
|
+
* @author: 琴时
|
|
50
|
+
* @param {date} 需要格式化的时间串(''/null/undefined ==> 默认当前时间)
|
|
51
|
+
* @param {fmt} 格式化样式标识(年-月-日:YYYY-MM-DD)(不传默认返回年-月-日 时:分:秒)
|
|
52
|
+
* @return {*} 返回格式化后的时间字符串
|
|
53
|
+
*/
|
|
54
|
+
var dateFormat = exports.dateFormat = function dateFormat(date) {
|
|
55
|
+
var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss';
|
|
56
|
+
var dt = createDate(date); //创建时间对象
|
|
38
57
|
// 构造正则匹配:(value)padStart:字符串不满2位数,开头补全'0'
|
|
39
58
|
var o = {
|
|
40
59
|
'[Yy]+': dt.getFullYear(),
|
|
@@ -71,20 +90,21 @@ var formatDate = exports.formatDate = function formatDate(date) {
|
|
|
71
90
|
/*******
|
|
72
91
|
* @description: 获取时间间隔
|
|
73
92
|
* @author: 琴时
|
|
74
|
-
* @param {
|
|
75
|
-
* @param {
|
|
93
|
+
* @param {*} st [开始时间]
|
|
94
|
+
* @param {*} et [结束时间]
|
|
95
|
+
* @param {String} key [索引]
|
|
76
96
|
* @return {*} 处理好的时间间隔相关对象
|
|
77
97
|
*/
|
|
78
|
-
var getTimeDistance = exports.getTimeDistance = function getTimeDistance(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var times = (
|
|
98
|
+
var getTimeDistance = exports.getTimeDistance = function getTimeDistance(st, et, key) {
|
|
99
|
+
st = timeStamp(st); // 开始时间戳
|
|
100
|
+
et = timeStamp(et); // 结束时间戳
|
|
101
|
+
var times = (et - st) / 1000; // 剩余时间总的秒数
|
|
82
102
|
var dd = parseInt(times / 60 / 60 / 24).toString().padStart(2, '0'); //天
|
|
83
103
|
var hh = parseInt(times / 60 / 60 % 24 + '').toString().padStart(2, '0'); //时
|
|
84
104
|
var mm = parseInt(times / 60 % 60 + '').toString().padStart(2, '0'); //分
|
|
85
105
|
var ss = parseInt(times % 60 + '').toString().padStart(2, '0'); //秒
|
|
86
106
|
if (ss < 0 || mm < 0 || hh < 0 || dd < 0) return null;
|
|
87
|
-
|
|
107
|
+
var obj = {
|
|
88
108
|
timeStr: "".concat(dd, "\u5929").concat(hh, "\u65F6").concat(mm, "\u5206").concat(ss, "\u79D2"),
|
|
89
109
|
timeStamp: times,
|
|
90
110
|
//剩余时间秒数
|
|
@@ -100,35 +120,21 @@ var getTimeDistance = exports.getTimeDistance = function getTimeDistance(start_T
|
|
|
100
120
|
//30天内
|
|
101
121
|
year: dd > 0 && dd < 365 //一年内
|
|
102
122
|
};
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
/*******
|
|
106
|
-
* @description: 转换时间戳
|
|
107
|
-
* @author: 琴时
|
|
108
|
-
* @param {*} params [时间字符串]/[时间对象]
|
|
109
|
-
* @return {*} [时间戳,当前时间戳]
|
|
110
|
-
*/
|
|
111
|
-
/* */
|
|
112
|
-
var timeStamp = exports.timeStamp = function timeStamp(params) {
|
|
113
|
-
var date = +new Date(params); //转换成时间戳
|
|
114
|
-
var newDate = Date.now(); //H5-生成当前时间戳
|
|
115
|
-
return {
|
|
116
|
-
date: date,
|
|
117
|
-
newDate: newDate
|
|
118
|
-
};
|
|
123
|
+
return obj[key] || obj;
|
|
119
124
|
};
|
|
120
125
|
|
|
121
126
|
/*******
|
|
122
127
|
* @description: 倒计时
|
|
123
128
|
* @author: 琴时
|
|
124
|
-
* @param {
|
|
125
|
-
* @
|
|
129
|
+
* @param {*} date [截止时间]
|
|
130
|
+
* @param {String} key [索引]
|
|
131
|
+
* @return {*} [倒计时间|结束则返回null]
|
|
126
132
|
*/
|
|
127
|
-
var countDown = exports.countDown = function countDown(
|
|
128
|
-
var
|
|
129
|
-
var
|
|
130
|
-
|
|
131
|
-
var times = (
|
|
133
|
+
var countDown = exports.countDown = function countDown(date) {
|
|
134
|
+
var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'cn';
|
|
135
|
+
var nt = +new Date(); // 当前时间戳
|
|
136
|
+
date = timeStamp(date); // 结束时间戳
|
|
137
|
+
var times = (date - nt) / 1000; // 剩余时间总的秒数
|
|
132
138
|
var dd = parseInt(times / 60 / 60 / 24).toString().padStart(2, '0'); // 天
|
|
133
139
|
var hh = parseInt(times / 60 / 60 % 24 + '').toString().padStart(2, '0'); //时
|
|
134
140
|
var mm = parseInt(times / 60 % 60 + '').toString().padStart(2, '0'); // 分
|
|
@@ -136,9 +142,9 @@ var countDown = exports.countDown = function countDown(params) {
|
|
|
136
142
|
if (times <= 0) return null; //结束返回null
|
|
137
143
|
var result = {
|
|
138
144
|
cn: "".concat(dd, "\u5929").concat(hh, "\u65F6").concat(mm, "\u5206").concat(ss, "\u79D2"),
|
|
139
|
-
ss: parseInt(times)
|
|
145
|
+
ss: parseInt(times) //剩余时间秒数
|
|
140
146
|
};
|
|
141
|
-
return result[
|
|
147
|
+
return result[key];
|
|
142
148
|
};
|
|
143
149
|
|
|
144
150
|
/*******
|
|
@@ -165,4 +171,46 @@ var transformDate = exports.transformDate = function transformDate(date, diff) {
|
|
|
165
171
|
}
|
|
166
172
|
}
|
|
167
173
|
return transDay;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
/*******
|
|
177
|
+
* @description: 获取结束时间
|
|
178
|
+
* @author: 琴时
|
|
179
|
+
* @param {*} startTime [开始时间]
|
|
180
|
+
* @param {*} expires [有效期/秒]
|
|
181
|
+
* @return {Date}
|
|
182
|
+
*/
|
|
183
|
+
var getExpiresEndTime = exports.getExpiresEndTime = function getExpiresEndTime(st, expires) {
|
|
184
|
+
st = timeStamp(st); //开始时间戳
|
|
185
|
+
expires = expires * 1000; //有效期毫秒
|
|
186
|
+
return new Date(st + expires);
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
/*******
|
|
190
|
+
* @description: 判断是否过期
|
|
191
|
+
* @author: 琴时
|
|
192
|
+
* @param {*} st [开始时间]
|
|
193
|
+
* @param {*} et [当前时间]
|
|
194
|
+
* @param {*} expires [有效期/毫秒]
|
|
195
|
+
* @return {*} [过期:true|未过期:false]
|
|
196
|
+
*/
|
|
197
|
+
var isExpires = exports.isExpires = function isExpires(st, et, expires) {
|
|
198
|
+
if (!st || !et || !expires) return true; // 参数不完整默认过期
|
|
199
|
+
st = timeStamp(st); //开始时间戳
|
|
200
|
+
et = timeStamp(et); // 结束时间戳
|
|
201
|
+
var differTime = et - st; //间隔毫秒
|
|
202
|
+
// 如果间隔毫秒 >= 有效期毫秒,则过期
|
|
203
|
+
return differTime >= expires;
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
/*******
|
|
207
|
+
* @description: 计算指定时间到间隔n天的时间
|
|
208
|
+
* @author: 琴时
|
|
209
|
+
* @param {*} date [指定时间]
|
|
210
|
+
* @param {number} severalDays [间隔天数]
|
|
211
|
+
* @return {Date}
|
|
212
|
+
*/
|
|
213
|
+
var getAfterNDays = exports.getAfterNDays = function getAfterNDays(date, severalDays) {
|
|
214
|
+
date = timeStamp(date); //指定时间的时间戳
|
|
215
|
+
return new Date(date + severalDays * 24 * 60 * 60 * 1000);
|
|
168
216
|
};
|