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 CHANGED
@@ -25,7 +25,7 @@ import { API } from 'tools-for-js'
25
25
  | 将对象中的键转小写 | lowercaseKeys |
26
26
  | 将对象中的键转大写 | upperCaseKeys |
27
27
  | 获取时间间隔 | getTimeDistance |
28
- | 转换时间戳 | timeStamp |
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 {date} 需要格式化的时间串(''/null/undefined ==> 默认当前时间)
19
- * @param {fmt} 格式化样式标识(年-月-日:YYYY-MM-DD)(不传默认返回年-月-日 时:分:秒)
20
- * @return {*} 返回格式化后的时间字符串
18
+ * @param {*} date [时间戳|时间字符串|时间对象|或者为空]
19
+ * @return {Date}
21
20
  */
22
- var dateFormat = exports.dateFormat = function dateFormat(date) {
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
- var dt = new Date(date); //创建时间对象
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 {start_Time} [开始时间]
75
- * @param {end_Time} [结束时间]
93
+ * @param {*} st [开始时间]
94
+ * @param {*} et [结束时间]
95
+ * @param {String} key [索引]
76
96
  * @return {*} 处理好的时间间隔相关对象
77
97
  */
78
- var getTimeDistance = exports.getTimeDistance = function getTimeDistance(start_Time, end_Time) {
79
- var startTime = +new Date(start_Time); // 开始时间戳
80
- var endTime = +new Date(end_Time); // 结束时间戳
81
- var times = (endTime - startTime) / 1000; // 剩余时间总的秒数
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
- return {
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 {params} [截止时间]
125
- * @return {*} [倒计时间/结束将返回null]
129
+ * @param {*} date [截止时间]
130
+ * @param {String} key [索引]
131
+ * @return {*} [倒计时间|结束则返回null]
126
132
  */
127
- var countDown = exports.countDown = function countDown(params) {
128
- var sign = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'cn';
129
- var nowTime = +new Date(); // 当前时间戳
130
- var endTime = +new Date(params); // 结束时间戳
131
- var times = (endTime - nowTime) / 1000; // 剩余时间总的秒数
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[sign];
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
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tools-for-js",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "基于babel构建的javascript工具库",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {