@ivujs/i-utils 2.1.0 → 2.1.1

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @ivujs/i-utils v2.1.0
2
+ * @ivujs/i-utils v2.1.1
3
3
  * Copyright 2021-2026, <gao911222@163.com>
4
4
  * Released under the MIT License.
5
5
  */
@@ -10,7 +10,16 @@
10
10
  })(this, (function (exports) { 'use strict';
11
11
 
12
12
  /**
13
- * 排序
13
+ * 排序相关常量配置(全局只读)
14
+ *
15
+ * DESC: 降序
16
+ * - 取值:0
17
+ *
18
+ * ASC: 升序
19
+ * - 取值:1
20
+ *
21
+ * RANDOM: 随机排序
22
+ * - 取值:2
14
23
  */
15
24
  const SORT = {
16
25
  // 降序
@@ -22,7 +31,15 @@
22
31
  };
23
32
 
24
33
  /**
25
- * 数学
34
+ * 数学计算相关常量配置(全局只读)
35
+ *
36
+ * ROUND: 正常四舍五入
37
+ * - 取值:0
38
+ * - 示例:1.354保留两位是1.35;1.355保留两位是1.36
39
+ *
40
+ * ROUND_FLOOR: 向下舍出
41
+ * - 取值:1
42
+ * - 示例:1.354保留两位是1.35;1.355保留两位是1.35
26
43
  */
27
44
  const MATH = {
28
45
  // 正常四舍五入,如:1.354保留两位是1.35;1.355保留两位是1.36;
@@ -32,7 +49,13 @@
32
49
  };
33
50
 
34
51
  /**
35
- * 语言
52
+ * 语言相关常量配置(全局只读)
53
+ *
54
+ * ZH: 中文
55
+ * - zh
56
+ *
57
+ * EN: 英文
58
+ * - en
36
59
  */
37
60
  const LANG = {
38
61
  // 中文
@@ -42,27 +65,50 @@
42
65
  };
43
66
 
44
67
  /**
45
- * 正则
68
+ * 正则表达式相关常量配置(全局只读)
69
+ *
70
+ * CH: 中文汉字
71
+ * EN: 英文字母
72
+ * LOWER_CASE: 小写字母
73
+ * UPPER_CASE: 大写字母
74
+ * CH_NAME: 中文姓名(2-16位)
75
+ * EN_NAME: 英文姓名(1-20位)
76
+ * NUMBER: 数字(包含正数和负数)
77
+ * INTEGER: 整数(包含:0,正整数和负整数)
78
+ * DECIMAL: 小数(包含正小数和负小数)
79
+ * INT_OR_FLOAT: 正整数或者保留两位小数
80
+ * MOBILE: 手机号码(支持+86)
81
+ * PHONE: 固定电话号码(比如:0755-1111111)
82
+ * EMAIL: 邮箱
83
+ * ID_CARD: 一代15位或二代18位身份证
84
+ * ID_CARD15: 仅校验一代15位身份证
85
+ * ID_CARD18: 仅校验二代18位身份证
86
+ * BANK_CARD: 银行卡号
87
+ * POST_CODE: 邮政编码
88
+ * URL: url地址(可获取主机地址、主机名、端口号、协议、查询参数、hash等信息)
89
+ * IP: ip地址
90
+ * IP6: IPv6地址
91
+ * EXTERNAL: 外链(http、https、mail、tel电话)
46
92
  */
47
93
  const REGEXP = {
48
94
  // 中文汉字
49
95
  CH: /^[\u4E00-\u9FA5]+$/,
50
- // 英文字母
51
- EN: /^[a-zA-Z]$/,
96
+ // 英文字母,1个以上
97
+ EN: /^[a-zA-Z]+$/,
52
98
  // 小写字母
53
99
  LOWER_CASE: /^[a-z]+$/,
54
100
  // 大写字母
55
101
  UPPER_CASE: /^[A-Z]+$/,
56
- // 中文姓名,2-16
102
+ // 中文姓名,2-16位(支持少数民族姓名间隔符「·」)
57
103
  CH_NAME: /^[\u4e00-\u9fa5·]{2,16}$/,
58
- // 英文姓名,0-20位
59
- EN_NAME: /(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/,
104
+ // 英文姓名,1-20位
105
+ EN_NAME: /^[a-zA-Z\s]{1,20}$/,
60
106
  // 数字,包含正数和负数
61
107
  NUMBER: /^([-+])?\d+(\.\d+)?$/,
62
108
  // 整数,包含:0,正整数和负整数
63
109
  INTEGER: /^(0|[1-9][0-9]*|-[1-9][0-9]*)$/,
64
110
  // 小数,包含正小数和负小数
65
- DECIMAL: /^\d+\.\d+$/,
111
+ DECIMAL: /^([-+])?\d+\.\d+$/,
66
112
  // 正整数或者保留两位小数
67
113
  INT_OR_FLOAT: /(^[1-9][0-9]*$)|(^[1-9][0-9]*\.[0-9]{1,2}$)|(^0\.[0-9]{1,2}$)|(^0$)/,
68
114
  // 手机号码,支持+86
@@ -71,7 +117,7 @@
71
117
  PHONE: /^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/,
72
118
  // 邮箱
73
119
  EMAIL: /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/,
74
- // 一代15位和二代18位身份证
120
+ // 一代15位或二代18位身份证
75
121
  ID_CARD: /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0[1-9]|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/,
76
122
  // 仅校验一代15位身份证
77
123
  ID_CARD15: /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)/,
@@ -86,13 +132,67 @@
86
132
  // ip地址
87
133
  IP: /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,
88
134
  // IPv6地址
89
- IP6: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,
135
+ IP6: /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|::([0-9a-fA-F]{1,4}:){0,6}[0-9a-fA-F]{1,4}|[0-9a-fA-F]{1,4}::([0-9a-fA-F]{1,4}:){0,5}[0-9a-fA-F]{1,4})$/i,
90
136
  // 是外链,http,https,mail,tel电话
91
- EXTERNAL: /^(http?:|https?:|mailto:|tel:)/,
137
+ EXTERNAL: /^(http:|https:|ftp:|ftps:|mailto:|tel:)/i,
92
138
  };
93
139
 
94
140
  /**
95
- * 日期
141
+ * 日期相关的多语言常量配置(全局只读)
142
+ *
143
+ * AM_PM: 上午/下午多语言配置
144
+ * - zh: { AM: "上午", PM: "下午" }
145
+ * - en: { AM: "AM", PM: "PM" }
146
+ *
147
+ * WEEK: 星期多语言配置
148
+ * - zh.FULL: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
149
+ * - zh.SHORT: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
150
+ * - zh.MINI: ["日", "一", "二", "三", "四", "五", "六"]
151
+ * - en.FULL: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
152
+ * - en.SHORT: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
153
+ * - en.MINI: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
154
+ *
155
+ * MONTH: 月份多语言配置
156
+ * - zh.FULL: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"]
157
+ * - zh.SHORT: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"]
158
+ * - en.FULL: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
159
+ * - en.SHORT: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
160
+ *
161
+ * QUARTER: 季度多语言配置
162
+ * - zh.FULL: ["第一季度", "第二季度", "第三季度", "第四季度"]
163
+ * - zh.SHORT: ["一季度", "二季度", "三季度", "四季度"]
164
+ * - zh.MINI: ["一", "二", "三", "四"]
165
+ * - en.FULL: ["quarter 1st", "quarter 2nd", "quarter 3rd", "quarter 4th"]
166
+ * - en.SHORT: ["Q1th", "Q2nd", "Q3rd", "Q4th"]
167
+ * - en.MINI: ["Q1", "Q2", "Q3", "Q4"]
168
+ *
169
+ * OVER_TIME: 剩余时间单位多语言配置
170
+ * - zh: { YEAR: "年", MONTH: "月", DATE: "日", HOUR: "时", MINUTE: "分", SECOND: "秒", MILLISECOND: "毫秒", DAY: "天", QUARTER: "季度" }
171
+ * - en: { YEAR: "year", MONTH: "month", DATE: "date", HOUR: "hour", MINUTE: "minute", SECOND: "second", MILLISECOND: "millisecond", DAY: "day", QUARTER: "quarter" }
172
+ *
173
+ * PASS_TIME: 过去时间描述多语言配置
174
+ * - zh: { YEAR: "年前", MONTH: "个月前", DAY: "天前", BEFORE_YESTERDAY: "前天", YESTERDAY: "昨天", TODAY: "今天", HOUR: "小时前", MINUTE: "分钟前", JUST: "刚刚" }
175
+ * - en: { YEAR: " year ago", MONTH: " month ago", DAY: " day ago", BEFORE_YESTERDAY: "before yesterday", YESTERDAY: " yesterday", TODAY: " today", HOUR: " hour ago", MINUTE: " minute ago", JUST: " just" }
176
+ *
177
+ * HOLIDAY: 节假日多语言配置
178
+ * - zh: ["元旦", "春节", "清明节", "劳动节", "端午节", "中秋节", "国庆节"]
179
+ * - en: ["New Year‘s Day", "Spring Festival", "Tomb Sweeping Day", "Labor Day", "Dragon Boat Festival", "Mid-Autumn Day", "National Day"]
180
+ *
181
+ * ZODIAC: 星座多语言配置
182
+ * - zh: ["摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座"]
183
+ * - en: ["Capricorn", "Aquarius", "Pisces", "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius"]
184
+ *
185
+ * CHINESE_ZODIAC: 生肖多语言配置
186
+ * - zh: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"]
187
+ * - en: ["Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"]
188
+ *
189
+ * HEAVENLY_STEMS: 天干多语言配置
190
+ * - zh: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"]
191
+ * - en: ["Jia", "Yi", "Bing", "Ding", "Wu", "Ji", "Geng", "Xin", "Ren", "Gui"]
192
+ *
193
+ * EARTHLY_BRANCHES: 地支多语言配置
194
+ * - zh: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"]
195
+ * - en: ["Zi", "Chou", "Yin", "Mao", "Chen", "Si", "Wu", "Wei", "Shen", "You", "Xu", "Hai"]
96
196
  */
97
197
  const DATE = {
98
198
  // 上午和下午
@@ -266,8 +366,123 @@
266
366
  },
267
367
  };
268
368
 
269
- /*
270
- * 键盘码
369
+ /**
370
+ * 键盘码相关常量配置(全局只读)
371
+ *
372
+ * 字符键:
373
+ * - 8: Backspace
374
+ * - 9: Tab
375
+ * - 13: Enter
376
+ * - 16: Shift
377
+ * - 17: Ctrl
378
+ * - 18: Alt
379
+ * - 19: Pause
380
+ * - 20: Caps Lock
381
+ * - 27: Escape
382
+ * - 32: Space
383
+ * - 33: Page Up
384
+ * - 34: Page Down
385
+ * - 35: End
386
+ * - 36: Home
387
+ * - 37: Left
388
+ * - 38: Up
389
+ * - 39: Right
390
+ * - 40: Down
391
+ * - 42: Print Screen
392
+ * - 45: Insert
393
+ * - 46: Delete
394
+ *
395
+ * 数字键:
396
+ * - 48: 0
397
+ * - 49: 1
398
+ * - 50: 2
399
+ * - 51: 3
400
+ * - 52: 4
401
+ * - 53: 5
402
+ * - 54: 6
403
+ * - 55: 7
404
+ * - 56: 8
405
+ * - 57: 9
406
+ *
407
+ * 字母键:
408
+ * - 65: A
409
+ * - 66: B
410
+ * - 67: C
411
+ * - 68: D
412
+ * - 69: E
413
+ * - 70: F
414
+ * - 71: G
415
+ * - 72: H
416
+ * - 73: I
417
+ * - 74: J
418
+ * - 75: K
419
+ * - 76: L
420
+ * - 77: M
421
+ * - 78: N
422
+ * - 79: O
423
+ * - 80: P
424
+ * - 81: Q
425
+ * - 82: R
426
+ * - 83: S
427
+ * - 84: T
428
+ * - 85: U
429
+ * - 86: V
430
+ * - 87: W
431
+ * - 88: X
432
+ * - 89: Y
433
+ * - 90: Z
434
+ *
435
+ * window 相关键:
436
+ * - 91: Windows
437
+ * - 93: Right Click
438
+ *
439
+ * 数字小键盘(Numpad):
440
+ * - 96: Numpad 0
441
+ * - 97: Numpad 1
442
+ * - 98: Numpad 2
443
+ * - 99: Numpad 3
444
+ * - 100: Numpad 4
445
+ * - 101: Numpad 5
446
+ * - 102: Numpad 6
447
+ * - 103: Numpad 7
448
+ * - 104: Numpad 8
449
+ * - 105: Numpad 9
450
+ * - 106: Numpad *
451
+ * - 107: Numpad +
452
+ * - 109: Numpad -
453
+ * - 110: Numpad .
454
+ * - 111: Numpad /
455
+ *
456
+ * F功能键:
457
+ * - 112: F1
458
+ * - 113: F2
459
+ * - 114: F3
460
+ * - 115: F4
461
+ * - 116: F5
462
+ * - 117: F6
463
+ * - 118: F7
464
+ * - 119: F8
465
+ * - 120: F9
466
+ * - 121: F10
467
+ * - 122: F11
468
+ * - 123: F12
469
+ *
470
+ * 特殊符号/功能键:
471
+ * - 144: Num Lock
472
+ * - 145: Scroll Lock
473
+ * - 182: My Computer
474
+ * - 183: My Calculator
475
+ * - 186: ;
476
+ * - 187: =
477
+ * - 188: ,
478
+ * - 189: -
479
+ * - 190: .
480
+ * - 191: /
481
+ * - 192: `
482
+ * - 219: [
483
+ * - 220: \
484
+ * - 221: ]
485
+ * - 222: '
271
486
  */
272
487
  const KEYCODE = {
273
488
  // 字符键
@@ -381,7 +596,48 @@
381
596
  };
382
597
 
383
598
  /**
384
- * 身份证号
599
+ * 身份证号相关常量配置(全局只读)
600
+ *
601
+ * PROVINCE: 身份证号前两位对应的省份/地区编码映射
602
+ * - 11: 北京
603
+ * - 12: 天津
604
+ * - 13: 河北
605
+ * - 14: 山西
606
+ * - 15: 内蒙古
607
+ * - 21: 辽宁
608
+ * - 22: 吉林
609
+ * - 23: 黑龙江
610
+ * - 31: 上海
611
+ * - 32: 江苏
612
+ * - 33: 浙江
613
+ * - 34: 安徽
614
+ * - 35: 福建
615
+ * - 36: 江西
616
+ * - 37: 山东
617
+ * - 41: 河南
618
+ * - 42: 湖北
619
+ * - 43: 湖南
620
+ * - 44: 广东
621
+ * - 45: 广西
622
+ * - 46: 海南
623
+ * - 50: 重庆
624
+ * - 51: 四川
625
+ * - 52: 贵州
626
+ * - 53: 云南
627
+ * - 54: 西藏
628
+ * - 61: 陕西
629
+ * - 62: 甘肃
630
+ * - 63: 青海
631
+ * - 64: 宁夏
632
+ * - 65: 新疆
633
+ * - 71: 台湾
634
+ * - 81: 香港
635
+ * - 82: 澳门
636
+ * - 91: 国外
637
+ *
638
+ * SEX: 身份证号解析的性别映射
639
+ * - MAN: 男
640
+ * - WOMAN: 女
385
641
  */
386
642
  const ID_CARD = {
387
643
  // 身份证号对应的省
@@ -3121,6 +3377,80 @@
3121
3377
  return date;
3122
3378
  }
3123
3379
  /* 格式化和解析日期 */
3380
+ /**
3381
+ * UTC 日期对象转本地时区日期对象
3382
+ * @description 将 UTC 时间的 Date 对象转换为本地时间的 Date 对象(时间戳不变,仅调整时区偏移)
3383
+ * @param {Date} date UTC 日期对象,默认当前 UTC 时间
3384
+ * @returns {Date} 本地时区日期对象(时间戳 = UTC时间戳 + 时区偏移毫秒数)
3385
+ * @example
3386
+ * // UTC时间:2025-01-26 00:00:00
3387
+ * const utcDate = new Date('2025-01-26T00:00:00Z');
3388
+ * const localDate = fromDateUTC(utcDate);
3389
+ * console.log(toDateString(localDate)); // 2025-01-26 08:00:00(北京本地时间)
3390
+ */
3391
+ function fromDateUTC(date = new Date()) {
3392
+ return new Date(date.getTime() - date.getTimezoneOffset() * 60 * 1000);
3393
+ }
3394
+ /**
3395
+ * 本地时区日期转 UTC 日期对象
3396
+ * @description 将本地时间的 Date 对象转换为 UTC 时间的 Date 对象(时间戳不变,仅调整时区偏移)
3397
+ * @param {Date} date 本地日期对象,默认当前本地时间
3398
+ * @returns {Date} UTC 日期对象(时间戳 = 本地时间戳 - 时区偏移毫秒数)
3399
+ * @example
3400
+ * // 北京本地时间:2025-01-26 08:00:00(东8区)
3401
+ * const localDate = new Date('2025-01-26 08:00:00');
3402
+ * const utcDate = toDateUTC(localDate);
3403
+ * console.log(utcDate.toISOString()); // 2025-01-26T00:00:00.000Z(UTC时间)
3404
+ */
3405
+ function toDateUTC(date = new Date()) {
3406
+ return new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
3407
+ }
3408
+ /**
3409
+ * 格式化日期为 UTC 字符串(符合 ISO 8601 标准)
3410
+ * @description 直接输出 UTC 时间的字符串,无需手动转换时区
3411
+ * @param {Date} date 本地日期对象,默认当前本地时间
3412
+ * @param {DateOptions} options 格式化配置,默认 yyyy-MM-dd HH:mm:ss
3413
+ * @returns {string} UTC 日期字符串
3414
+ * @example
3415
+ * const localDate = new Date('2025-01-26 08:00:00');
3416
+ * console.log(toUTCString(localDate)); // 2025-01-26 00:00:00
3417
+ */
3418
+ function toDataUTCString(date = new Date(), options = { format: "yyyy-MM-dd HH:mm:ss" }) {
3419
+ const utcDate = toDateUTC(date);
3420
+ return toDateString(utcDate, options);
3421
+ }
3422
+ /**
3423
+ * 日期字符串转为日期对象
3424
+ * @description 支持日期字符串,时间戳,Unix时间戳
3425
+ * @param {string|number} value 日期参数
3426
+ * @returns {Date} 返回日期对象
3427
+ */
3428
+ function toDate(value) {
3429
+ if (isNull(value))
3430
+ return;
3431
+ try {
3432
+ // 是日期字符串
3433
+ if (isString(value)) {
3434
+ return new Date(String(value).replace(/-/g, "/"));
3435
+ }
3436
+ // 是时间戳
3437
+ else if (isInteger(value) && String(value).length === 13) {
3438
+ return new Date(value);
3439
+ }
3440
+ // 是unix时间戳
3441
+ else if (isInteger(value) && String(value).length === 10) {
3442
+ return new Date(Number(value) * 1000);
3443
+ }
3444
+ // 不支持的日期格式
3445
+ else {
3446
+ console.error("Not supported date format!");
3447
+ return undefined;
3448
+ }
3449
+ }
3450
+ catch (e) {
3451
+ console.error("Parse to Date error", e);
3452
+ }
3453
+ }
3124
3454
  /**
3125
3455
  * 日期对象转为日期字符串
3126
3456
  * @description 支持日期字符串,日期对象,时间戳,unix时间戳
@@ -3223,46 +3553,6 @@
3223
3553
  return "";
3224
3554
  }
3225
3555
  }
3226
- /**
3227
- * 本地时区日期转UTC日期
3228
- * @param {Date} date 本地日期,默认当前日期
3229
- * @returns {Date} UTC日期对象
3230
- */
3231
- function toDateUTC(date = new Date()) {
3232
- return new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
3233
- }
3234
- /**
3235
- * 日期字符串转为日期对象
3236
- * @description 支持日期字符串,时间戳,Unix时间戳
3237
- * @param {string|number} value 日期参数
3238
- * @returns {Date} 返回日期对象
3239
- */
3240
- function toDate(value) {
3241
- if (isNull(value))
3242
- return;
3243
- try {
3244
- // 是日期字符串
3245
- if (isString(value)) {
3246
- return new Date(String(value).replace(/-/g, "/"));
3247
- }
3248
- // 是时间戳
3249
- else if (isInteger(value) && String(value).length === 13) {
3250
- return new Date(value);
3251
- }
3252
- // 是unix时间戳
3253
- else if (isInteger(value) && String(value).length === 10) {
3254
- return new Date(Number(value) * 1000);
3255
- }
3256
- // 不支持的日期格式
3257
- else {
3258
- console.error("Not supported date format!");
3259
- return undefined;
3260
- }
3261
- }
3262
- catch (e) {
3263
- console.error("Parse to Date error", e);
3264
- }
3265
- }
3266
3556
  /* 内部使用的函数 */
3267
3557
  /**
3268
3558
  * 单个数字前自动补齐零为两位
@@ -7833,6 +8123,7 @@
7833
8123
  exports.formatTemplate = formatTemplate;
7834
8124
  exports.formatThousand = formatThousand;
7835
8125
  exports.formatTitle = formatTitle;
8126
+ exports.fromDateUTC = fromDateUTC;
7836
8127
  exports.gcd = gcd;
7837
8128
  exports.generateSM4Iv = generateSM4Iv;
7838
8129
  exports.generateSM4Key = generateSM4Key;
@@ -8067,6 +8358,7 @@
8067
8358
  exports.testLoaded = testLoaded;
8068
8359
  exports.throttle = throttle;
8069
8360
  exports.toCamelCase = toCamelCase;
8361
+ exports.toDataUTCString = toDataUTCString;
8070
8362
  exports.toDate = toDate;
8071
8363
  exports.toDateString = toDateString;
8072
8364
  exports.toDateUTC = toDateUTC;