UNPKG

3.14 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3/**
4 * 单独封装一个时间相关的类,为了解决后期日期处理问题
5 */
6class LocalDate extends Date {
7 static now() {
8 return Date.now();
9 }
10 static parse(s) {
11 return Date.parse(s);
12 }
13 static formateString(t) {
14 let t1 = t ? new LocalDate(t) : new LocalDate();
15 return t1.formateString();
16 }
17 toLen(num, len) {
18 let out = num.toString();
19 while (out.length < len)
20 out = '0' + out;
21 return out;
22 }
23 formateString() {
24 return `${this.toLen(this.getFullYear(), 4)}-${this.toLen(this.getMonth() + 1, 2)}-${this.toLen(this.getDate(), 2)} ${this.toLen(this.getHours(), 2)}:${this.toLen(this.getMinutes(), 2)}:${this.toLen(this.getSeconds(), 2)}`;
25 }
26 static isMonthly(timeA, timeB) {
27 let tA = new LocalDate(timeA);
28 let tB = new LocalDate(timeB);
29 if (tA.getUTCFullYear() == tB.getUTCFullYear() &&
30 tA.getUTCMonth() == tB.getUTCMonth()) {
31 return true;
32 }
33 return false;
34 }
35 static isDaily(timeA, timeB) {
36 let tA = new LocalDate(timeA);
37 let tB = new LocalDate(timeB);
38 if (tA.getUTCFullYear() == tB.getUTCFullYear() &&
39 tA.getUTCMonth() == tB.getUTCMonth() &&
40 tA.getUTCDate() == tB.getUTCDate()) {
41 return true;
42 }
43 return false;
44 }
45 static isTime(timeA, timeB, type) {
46 let tA = new LocalDate(timeA);
47 let tB = new LocalDate(timeB);
48 switch (type) {
49 default:
50 case 'second':
51 if (tA.getUTCSeconds() != tB.getUTCSeconds())
52 return false;
53 case 'minute':
54 if (tA.getUTCMinutes() != tB.getUTCMinutes())
55 return false;
56 case 'hour':
57 if (tA.getUTCHours() != tB.getUTCHours())
58 return false;
59 case "date":
60 if (tA.getUTCDate() != tB.getUTCDate())
61 return false;
62 case "month":
63 if (tA.getUTCMonth() != tB.getUTCMonth())
64 return false;
65 case "year":
66 if (tA.getUTCFullYear() != tB.getUTCFullYear())
67 return false;
68 break;
69 }
70 return true;
71 }
72 static isYearly(timeA, timeB) {
73 let tA = new LocalDate(timeA);
74 let tB = new LocalDate(timeB);
75 if (tA.getUTCFullYear() == tB.getUTCFullYear()) {
76 return true;
77 }
78 return false;
79 }
80 static isWeekly(timeA, timeB) {
81 let tA = new LocalDate(timeA);
82 tA.setUTCHours(0, 0, 0, 0);
83 let tB = new LocalDate(timeB);
84 tB.setUTCHours(0, 0, 0, 0);
85 let d = tA.getUTCDay() + Math.floor((tA.getTime() - tB.getTime()) / (1000 * 60 * 60 * 24));
86 if (d >= 0 && d < 7) {
87 return true;
88 }
89 return false;
90 }
91}
92exports.LocalDate = LocalDate;