tools-for-js 1.2.3 → 1.2.6
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 +1 -0
- package/lib/index.js +12 -0
- package/lib/utils/array.js +21 -2
- package/lib/utils/time.js +67 -115
- package/package.json +4 -1
package/README.md
CHANGED
package/lib/index.js
CHANGED
|
@@ -87,6 +87,12 @@ Object.defineProperty(exports, "exactAdd", {
|
|
|
87
87
|
return _calculate.exactAdd;
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
|
+
Object.defineProperty(exports, "formatDate", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function get() {
|
|
93
|
+
return _time.formatDate;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
90
96
|
Object.defineProperty(exports, "getPagination", {
|
|
91
97
|
enumerable: true,
|
|
92
98
|
get: function get() {
|
|
@@ -147,6 +153,12 @@ Object.defineProperty(exports, "objectToQs", {
|
|
|
147
153
|
return _object.objectToQs;
|
|
148
154
|
}
|
|
149
155
|
});
|
|
156
|
+
Object.defineProperty(exports, "shuffleArray", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function get() {
|
|
159
|
+
return _array.shuffleArray;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
150
162
|
Object.defineProperty(exports, "sortByKeyAndTime", {
|
|
151
163
|
enumerable: true,
|
|
152
164
|
get: function get() {
|
package/lib/utils/array.js
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.randomNumEnum = exports.getValueFromArray = exports.getPagination = exports.deWeightArray = exports.checkKeyEmpty = exports.arrayToTree = exports.arrExchange = exports.arrEleMove = void 0;
|
|
7
|
+
exports.shuffleArray = shuffleArray;
|
|
8
|
+
exports.treeLastChildSum = exports.sortByKeyAndTime = void 0;
|
|
7
9
|
var _calculate = require("./calculate");
|
|
8
10
|
var _common = require("./common");
|
|
9
11
|
var _object = require("./object");
|
|
@@ -252,4 +254,21 @@ var sortByKeyAndTime = exports.sortByKeyAndTime = function sortByKeyAndTime(list
|
|
|
252
254
|
}
|
|
253
255
|
return order === 'asc' ? a_val - b_val : b_val - a_val;
|
|
254
256
|
});
|
|
255
|
-
};
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
/*******
|
|
260
|
+
* @description: 数组随机打乱
|
|
261
|
+
* @author: 琴时
|
|
262
|
+
* @param {Array} arr
|
|
263
|
+
* @return {Array}
|
|
264
|
+
*/
|
|
265
|
+
function shuffleArray(arr) {
|
|
266
|
+
var array = _toConsumableArray(arr);
|
|
267
|
+
for (var i = array.length - 1; i > 0; i--) {
|
|
268
|
+
var j = Math.floor(Math.random() * (i + 1));
|
|
269
|
+
var _ref4 = [array[j], array[i]];
|
|
270
|
+
array[i] = _ref4[0];
|
|
271
|
+
array[j] = _ref4[1];
|
|
272
|
+
}
|
|
273
|
+
return array;
|
|
274
|
+
}
|
package/lib/utils/time.js
CHANGED
|
@@ -3,117 +3,70 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.transformDate = exports.timeStamp = exports.getTimeDistance = exports.dateFormat = exports.countDown = void 0;
|
|
6
|
+
exports.transformDate = exports.timeStamp = exports.getTimeDistance = exports.formatDate = exports.dateFormat = exports.countDown = void 0;
|
|
7
|
+
require("dayjs/locale/zh-cn");
|
|
8
|
+
var _relativeTime = _interopRequireDefault(require("dayjs/plugin/relativeTime"));
|
|
9
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
+
// ES 2015
|
|
12
|
+
|
|
13
|
+
_dayjs["default"].locale('zh-cn'); // 全局使用
|
|
14
|
+
_dayjs["default"].extend(_relativeTime["default"]);
|
|
15
|
+
|
|
7
16
|
/*******
|
|
8
17
|
* @description: 生成时间格式化
|
|
9
18
|
* @author: 琴时
|
|
10
|
-
* @param {
|
|
11
|
-
* @param {
|
|
19
|
+
* @param {date} 需要格式化的时间串(''/null/undefined ==> 默认当前时间)
|
|
20
|
+
* @param {fmt} 格式化样式标识(年-月-日:YYYY-MM-DD)(不传默认返回年-月-日 时:分:秒)
|
|
12
21
|
* @return {*} 返回格式化后的时间字符串
|
|
13
22
|
*/
|
|
14
|
-
var dateFormat = exports.dateFormat = function dateFormat(
|
|
15
|
-
var
|
|
16
|
-
//如果params是时间字符串:2021-05-20 00:00:00 为了兼容ios需要将其转换成 2021/05/20 00:00:00
|
|
23
|
+
var dateFormat = exports.dateFormat = function dateFormat(date) {
|
|
24
|
+
var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss';
|
|
17
25
|
var pattern = /^(?=.*T)(?=.*).*$/;
|
|
18
26
|
var patternNum = /^\d*$/;
|
|
19
|
-
if (!
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
27
|
+
if (!date) {
|
|
28
|
+
// 不传参数
|
|
29
|
+
date = new Date();
|
|
30
|
+
} else if (patternNum.test(date)) {
|
|
31
|
+
// 时间戳
|
|
32
|
+
date = parseInt(date);
|
|
33
|
+
} else if (typeof date === 'string' && !pattern.test(date)) {
|
|
34
|
+
//兼容ios: 将时间字符串中的'-'替换成'/' 2021-05-20 00:00:00=>2021/05/20 00:00:00
|
|
35
|
+
date = "".concat(date).replace(/-/g, '/');
|
|
25
36
|
}
|
|
26
37
|
/* 处理格式化时间 */
|
|
27
|
-
var dt = new Date(
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
var dd = (dt.getDate() + '').padStart(2, '0'); //日
|
|
32
|
-
var wk = '星期' + '日一二三四五六'.charAt(dt.getDay()); //星期
|
|
33
|
-
var hh = (dt.getHours() + '').padStart(2, '0'); //时
|
|
34
|
-
var mi = (dt.getMinutes() + '').padStart(2, '0'); //分
|
|
35
|
-
var ss = (dt.getSeconds() + '').padStart(2, '0'); //秒
|
|
36
|
-
var ms = dt.getMilliseconds(); //毫秒
|
|
37
|
-
var timeObj = {
|
|
38
|
-
date1: "".concat(yy, "-").concat(mm, "-").concat(dd, " ").concat(hh, ":").concat(mi, ":").concat(ss, " ").concat(qt).concat(wk),
|
|
39
|
-
//年-月-日 时:分:秒 季度星期
|
|
40
|
-
date2: "".concat(yy, "-").concat(mm, "-").concat(dd, " ").concat(hh, ":").concat(mi, ":").concat(ss, " ").concat(qt),
|
|
41
|
-
//年-月-日 时:分:秒 季度
|
|
42
|
-
date3: "".concat(yy, "-").concat(mm, "-").concat(dd, " ").concat(hh, ":").concat(mi, ":").concat(ss, " ").concat(wk),
|
|
43
|
-
//年-月-日 时:分:秒 星期
|
|
44
|
-
date4: "".concat(yy, "-").concat(mm, "-").concat(dd, " ").concat(hh, ":").concat(mi, ":").concat(ss),
|
|
45
|
-
//年-月-日 时:分:秒
|
|
46
|
-
date5: "".concat(yy, "-").concat(mm, "-").concat(dd),
|
|
47
|
-
//年-月-日
|
|
48
|
-
date6: "".concat(yy, "-").concat(mm),
|
|
49
|
-
//年-月
|
|
50
|
-
date7: "".concat(mm, "-").concat(dd),
|
|
51
|
-
//月-日
|
|
52
|
-
date8: "".concat(hh, ":").concat(mi, ":").concat(ss),
|
|
53
|
-
//时:分:秒
|
|
54
|
-
date9: "".concat(yy),
|
|
38
|
+
var dt = new Date(date); //创建时间对象
|
|
39
|
+
// 构造正则匹配:(value)padStart:字符串不满2位数,开头补全'0'
|
|
40
|
+
var o = {
|
|
41
|
+
'[Yy]+': dt.getFullYear(),
|
|
55
42
|
//年
|
|
56
|
-
|
|
43
|
+
'M+': (dt.getMonth() + 1 + '').padStart(2, '0'),
|
|
57
44
|
//月
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
45
|
+
'D+': (dt.getDate() + '').padStart(2, '0'),
|
|
46
|
+
// 日
|
|
47
|
+
'H+': (dt.getHours() + '').padStart(2, '0'),
|
|
48
|
+
// 时
|
|
49
|
+
'm+': (dt.getMinutes() + '').padStart(2, '0'),
|
|
50
|
+
// 分
|
|
51
|
+
's+': (dt.getSeconds() + '').padStart(2, '0'),
|
|
52
|
+
// 秒
|
|
53
|
+
'w+': '星期' + '日一二三四五六'.charAt(dt.getDay()),
|
|
54
|
+
// 星期
|
|
55
|
+
'q+': Math.floor((dt.getMonth() + 3) / 3),
|
|
56
|
+
// 季度
|
|
57
|
+
S: dt.getMilliseconds() // 毫秒
|
|
71
58
|
};
|
|
72
|
-
|
|
73
|
-
var
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
//年-月-日 时:分:秒 季度
|
|
77
|
-
/^YYYY\-MM\-DD hh\:mm\:ss wk$/,
|
|
78
|
-
//年-月-日 时:分:秒 星期
|
|
79
|
-
/^YYYY\-MM\-DD hh\:mm\:ss$/,
|
|
80
|
-
//年-月-日 时:分:秒
|
|
81
|
-
/^YYYY\-MM\-DD$/,
|
|
82
|
-
//年-月-日
|
|
83
|
-
/^YYYY\-MM$/,
|
|
84
|
-
//年-月
|
|
85
|
-
/^MM\-DD$/,
|
|
86
|
-
//月-日
|
|
87
|
-
/^hh\:mm\:ss$/,
|
|
88
|
-
//时:分:秒
|
|
89
|
-
/^YYYY$/,
|
|
90
|
-
//年
|
|
91
|
-
/^MM$/,
|
|
92
|
-
//月
|
|
93
|
-
/^DD$/,
|
|
94
|
-
//日
|
|
95
|
-
/^hh$/,
|
|
96
|
-
//时
|
|
97
|
-
/^mm$/,
|
|
98
|
-
//分
|
|
99
|
-
/^ss$/,
|
|
100
|
-
//秒
|
|
101
|
-
/^qt$/,
|
|
102
|
-
//季度
|
|
103
|
-
/^ss$/,
|
|
104
|
-
//星期
|
|
105
|
-
/^YYYYMMDDhhmmss$/ //时间串
|
|
106
|
-
];
|
|
107
|
-
var newDate = '';
|
|
108
|
-
var news = list.some(function (item, index) {
|
|
109
|
-
if (item.test(format)) {
|
|
110
|
-
newDate = timeObj["date".concat(index + 1)];
|
|
111
|
-
return true;
|
|
59
|
+
// 将正则匹配上的字符替换对应的时间值
|
|
60
|
+
for (var k in o) {
|
|
61
|
+
if (new RegExp("(".concat(k, ")")).test(fmt)) {
|
|
62
|
+
fmt = fmt.replace(RegExp.$1, o[k]);
|
|
112
63
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
64
|
+
}
|
|
65
|
+
return fmt;
|
|
66
|
+
};
|
|
67
|
+
var formatDate = exports.formatDate = function formatDate(date) {
|
|
68
|
+
var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss';
|
|
69
|
+
return (0, _dayjs["default"])(date).format(fmt);
|
|
117
70
|
};
|
|
118
71
|
|
|
119
72
|
/*******
|
|
@@ -193,24 +146,23 @@ var countDown = exports.countDown = function countDown(params) {
|
|
|
193
146
|
* @description: 距离当前时间状况
|
|
194
147
|
* @author: 琴时
|
|
195
148
|
* @param {*} date
|
|
149
|
+
* @param {String} diff [year:年, month:月, week:周, day:天, hour:小时, minute:分钟, second:秒]
|
|
196
150
|
* @return {String}
|
|
197
151
|
*/
|
|
198
|
-
var transformDate = exports.transformDate = function transformDate(date) {
|
|
199
|
-
var
|
|
200
|
-
|
|
201
|
-
if (
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return parseInt(interval / 2592000000) + '月前';
|
|
213
|
-
} else {
|
|
214
|
-
return parseInt(interval / 31536000000) + '年前';
|
|
152
|
+
var transformDate = exports.transformDate = function transformDate(date, diff) {
|
|
153
|
+
var transDay = (0, _dayjs["default"])(date).fromNow().replace(/\s+/g, '');
|
|
154
|
+
if (transDay === '几秒前') transDay = '刚刚';
|
|
155
|
+
if (diff) {
|
|
156
|
+
var diffObj = {
|
|
157
|
+
year: '年',
|
|
158
|
+
month: '月',
|
|
159
|
+
week: '周',
|
|
160
|
+
day: '天'
|
|
161
|
+
};
|
|
162
|
+
// 匹配transDay有无该值==>超出界限则显示日期
|
|
163
|
+
if (new RegExp("(".concat(diffObj[diff], ")")).test(transDay)) {
|
|
164
|
+
transDay = (0, _dayjs["default"])(date).format('YYYY-MM-DD');
|
|
165
|
+
}
|
|
215
166
|
}
|
|
167
|
+
return transDay;
|
|
216
168
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tools-for-js",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.6",
|
|
4
4
|
"description": "基于babel构建的javascript工具库",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -31,5 +31,8 @@
|
|
|
31
31
|
"@babel/node": "^7.23.9",
|
|
32
32
|
"@babel/preset-env": "^7.24.5",
|
|
33
33
|
"nodemon": "^3.1.0"
|
|
34
|
+
},
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"dayjs": "^1.11.11"
|
|
34
37
|
}
|
|
35
38
|
}
|