diff options
Diffstat (limited to 'shared/core-utils/miscs/date.ts')
-rw-r--r-- | shared/core-utils/miscs/date.ts | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/shared/core-utils/miscs/date.ts b/shared/core-utils/miscs/date.ts new file mode 100644 index 000000000..4f92f758f --- /dev/null +++ b/shared/core-utils/miscs/date.ts | |||
@@ -0,0 +1,67 @@ | |||
1 | function isToday (d: Date) { | ||
2 | const today = new Date() | ||
3 | |||
4 | return areDatesEqual(d, today) | ||
5 | } | ||
6 | |||
7 | function isYesterday (d: Date) { | ||
8 | const yesterday = new Date() | ||
9 | yesterday.setDate(yesterday.getDate() - 1) | ||
10 | |||
11 | return areDatesEqual(d, yesterday) | ||
12 | } | ||
13 | |||
14 | function isThisWeek (d: Date) { | ||
15 | const minDateOfThisWeek = new Date() | ||
16 | minDateOfThisWeek.setHours(0, 0, 0) | ||
17 | |||
18 | // getDay() -> Sunday - Saturday : 0 - 6 | ||
19 | // We want to start our week on Monday | ||
20 | let dayOfWeek = minDateOfThisWeek.getDay() - 1 | ||
21 | if (dayOfWeek < 0) dayOfWeek = 6 // Sunday | ||
22 | |||
23 | minDateOfThisWeek.setDate(minDateOfThisWeek.getDate() - dayOfWeek) | ||
24 | |||
25 | return d >= minDateOfThisWeek | ||
26 | } | ||
27 | |||
28 | function isThisMonth (d: Date) { | ||
29 | const thisMonth = new Date().getMonth() | ||
30 | |||
31 | return d.getMonth() === thisMonth | ||
32 | } | ||
33 | |||
34 | function isLastMonth (d: Date) { | ||
35 | const now = new Date() | ||
36 | |||
37 | return getDaysDifferences(now, d) <= 30 | ||
38 | } | ||
39 | |||
40 | function isLastWeek (d: Date) { | ||
41 | const now = new Date() | ||
42 | |||
43 | return getDaysDifferences(now, d) <= 7 | ||
44 | } | ||
45 | |||
46 | // --------------------------------------------------------------------------- | ||
47 | |||
48 | export { | ||
49 | isYesterday, | ||
50 | isThisWeek, | ||
51 | isThisMonth, | ||
52 | isToday, | ||
53 | isLastMonth, | ||
54 | isLastWeek | ||
55 | } | ||
56 | |||
57 | // --------------------------------------------------------------------------- | ||
58 | |||
59 | function areDatesEqual (d1: Date, d2: Date) { | ||
60 | return d1.getFullYear() === d2.getFullYear() && | ||
61 | d1.getMonth() === d2.getMonth() && | ||
62 | d1.getDate() === d2.getDate() | ||
63 | } | ||
64 | |||
65 | function getDaysDifferences (d1: Date, d2: Date) { | ||
66 | return (d1.getTime() - d2.getTime()) / (86400000) | ||
67 | } | ||