tools-for-js 1.3.1 → 1.3.2
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 +5 -1
- package/lib/index.js +24 -0
- package/lib/utils/time.js +93 -45
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ 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 |
|
|
@@ -56,3 +56,7 @@ import { API } from 'tools-for-js'
|
|
|
56
56
|
| 切割/获取文件名 | splitToFileName |
|
|
57
57
|
| 数组反选 | invertSelection |
|
|
58
58
|
| 生成随机颜色 | getRandomColor |
|
|
59
|
+
| 创建时间对象 | createDate |
|
|
60
|
+
| 获取结束时间 | getExpiresEndTime |
|
|
61
|
+
| 判断是否过期 | isExpires |
|
|
62
|
+
| 计算指定时间到间隔 n 天的时间 | getAfterNDays |
|
package/lib/index.js
CHANGED
|
@@ -57,6 +57,12 @@ 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() {
|
|
@@ -93,6 +99,18 @@ Object.defineProperty(exports, "formatDate", {
|
|
|
93
99
|
return _time.formatDate;
|
|
94
100
|
}
|
|
95
101
|
});
|
|
102
|
+
Object.defineProperty(exports, "getAfterNDays", {
|
|
103
|
+
enumerable: true,
|
|
104
|
+
get: function get() {
|
|
105
|
+
return _time.getAfterNDays;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
Object.defineProperty(exports, "getExpiresEndTime", {
|
|
109
|
+
enumerable: true,
|
|
110
|
+
get: function get() {
|
|
111
|
+
return _time.getExpiresEndTime;
|
|
112
|
+
}
|
|
113
|
+
});
|
|
96
114
|
Object.defineProperty(exports, "getPagination", {
|
|
97
115
|
enumerable: true,
|
|
98
116
|
get: function get() {
|
|
@@ -141,6 +159,12 @@ Object.defineProperty(exports, "isEqual", {
|
|
|
141
159
|
return _common.isEqual;
|
|
142
160
|
}
|
|
143
161
|
});
|
|
162
|
+
Object.defineProperty(exports, "isExpires", {
|
|
163
|
+
enumerable: true,
|
|
164
|
+
get: function get() {
|
|
165
|
+
return _time.isExpires;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
144
168
|
Object.defineProperty(exports, "lowercaseKeys", {
|
|
145
169
|
enumerable: true,
|
|
146
170
|
get: function get() {
|
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
|
};
|