1 |
|
2 |
|
3 |
|
4 | 'use strict';
|
5 |
|
6 | module.exports = class DateHelper {
|
7 |
|
8 | static isExpired (date, period, now = new Date) {
|
9 | return date.valueOf() + this.parseDuration(period) < now.valueOf();
|
10 | }
|
11 |
|
12 | static isValid (date) {
|
13 | if (!date) {
|
14 | return false;
|
15 | }
|
16 | date = date instanceof Date ? date : new Date(date);
|
17 | return !isNaN(date.getTime());
|
18 | }
|
19 |
|
20 | static getValid (date) {
|
21 | if (!date) {
|
22 | return null;
|
23 | }
|
24 | date = date instanceof Date ? date : new Date(date);
|
25 | return isNaN(date.getTime()) ? null : date;
|
26 | }
|
27 |
|
28 | static getAbsolute (date) {
|
29 | if (!date) {
|
30 | return null;
|
31 | }
|
32 | date = date instanceof Date ? date : new Date(date);
|
33 | const time = date.getTime();
|
34 | return isNaN(time) ? null : (new Date(time + date.getTimezoneOffset() * 60000));
|
35 | }
|
36 |
|
37 | static getDayInterval (date) {
|
38 | date = this.getValid(date);
|
39 | if (!date) {
|
40 | return null;
|
41 | }
|
42 | date.setUTCHours(0);
|
43 | date.setUTCMinutes(0);
|
44 | date.setUTCSeconds(0);
|
45 | date.setUTCMilliseconds(0);
|
46 | const end = new Date(date);
|
47 | end.setUTCDate(date.getUTCDate() + 1);
|
48 | return [date, end];
|
49 | }
|
50 |
|
51 | static parse (value, language, format = 'L') {
|
52 | value = moment.utc(value, format, language);
|
53 | return value.isValid() ? value.toDate() : null;
|
54 | }
|
55 |
|
56 | static parseDuration (value) {
|
57 | return typeof value === 'number'
|
58 | ? value * 1000
|
59 | : moment.duration(value).valueOf();
|
60 | }
|
61 | };
|
62 |
|
63 | const moment = require('moment'); |
\ | No newline at end of file |