1 | const XDate = require('xdate');
|
2 |
|
3 | function padNumber(n) {
|
4 | if (n < 10) {
|
5 | return '0' + n;
|
6 | }
|
7 | return n;
|
8 | }
|
9 |
|
10 | function xdateToData(xdate) {
|
11 | const dateString = xdate.toString('yyyy-MM-dd');
|
12 | return {
|
13 | year: xdate.getFullYear(),
|
14 | month: xdate.getMonth() + 1,
|
15 | day: xdate.getDate(),
|
16 | timestamp: XDate(dateString, true).getTime(),
|
17 | dateString: dateString
|
18 | };
|
19 | }
|
20 |
|
21 | function parseDate(d) {
|
22 | if (!d) {
|
23 | return;
|
24 | } else if (d.timestamp) {
|
25 | return XDate(d.timestamp, true);
|
26 | } else if (d instanceof XDate) {
|
27 | return XDate(d.toString('yyyy-MM-dd'), true);
|
28 | } else if (d.getTime) {
|
29 | const dateString = d.getFullYear() + '-' + padNumber((d.getMonth() + 1)) + '-' + padNumber(d.getDate());
|
30 | return XDate(dateString, true);
|
31 | } else if (d.year) {
|
32 | const dateString = d.year + '-' + padNumber(d.month) + '-' + padNumber(d.day);
|
33 | return XDate(dateString, true);
|
34 | } else if (d) {
|
35 | return XDate(d, true);
|
36 | }
|
37 | }
|
38 |
|
39 | module.exports = {
|
40 | xdateToData,
|
41 | parseDate
|
42 | };
|
43 |
|