-
Notifications
You must be signed in to change notification settings - Fork 750
/
Copy pathdemo.js
105 lines (98 loc) · 4 KB
/
demo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
function demo(luxon) {
const DateTime = luxon.DateTime;
const Duration = luxon.Duration;
const Info = luxon.Info;
const run = function (code) {
let result;
try {
result = eval(code);
} catch (e) {
console.error(e);
return "[error]";
}
switch (true) {
case result.isValid === false:
return "Invalid";
case result instanceof DateTime:
return "[ DateTime " + result.toISO() + " ]";
case result instanceof Duration:
return "[ Duration " + JSON.stringify(result.toObject()) + " ]";
case result instanceof Date:
return "[ Date " + result.toString() + " ]";
default:
return JSON.stringify(result);
}
};
const examples = [];
const example = function (code) {
examples.push(
"<tr class='example'><td class='code'>" +
code +
"</td><td class='divider'>//=> </td><td class='result'>" +
run(code) +
"</td></tr>"
);
};
example("Info.features()");
example("DateTime.now()");
example("DateTime.now().toUnixInteger()");
example("DateTime.now().toJSDate()");
example("DateTime.utc().toISO()");
example("DateTime.utc(2017, 5, 15, 17, 36)");
example("DateTime.utc(2017, 5, 15, 17, 36).toLocal()");
example("DateTime.local(2017, 5, 15, 17, 36)");
example("DateTime.local(2017, 5, 15, 17, 36).toUTC()");
example("DateTime.now().toObject()");
example("DateTime.fromObject({ year: 2017, month: 5, day: 15, hour: 17, minute: 36 })");
example(
"DateTime.fromObject({ year: 2017, month: 5, day: 15, hour: 17, minute: 36 }, { zone: 'America/New_York' })"
);
example(
"DateTime.fromObject({ year: 2017, month: 5, day: 15, hour: 17, minute: 36 }, { zone: 'Asia/Singapore' })"
);
example("DateTime.now().setZone('America/New_York')");
example("DateTime.now().setZone('America/New_York').startOf('day')");
example("DateTime.now().plus({minutes: 15, seconds: 8})");
example("DateTime.now().plus({days: 6})");
example("DateTime.now().minus({days: 6})");
example("DateTime.now().diff(DateTime.local(1982, 5, 25)).milliseconds");
example("DateTime.now().diff(DateTime.local(1982, 5, 25), 'days').days");
example("DateTime.now().diff(DateTime.local(1982, 5, 25), ['days', 'hours'])");
example("DateTime.now().toLocaleString()");
example("DateTime.now().setLocale('zh').toLocaleString()");
example("DateTime.now().toLocaleString(DateTime.DATE_MED)");
example("DateTime.now().setLocale('zh').toLocaleString(DateTime.DATE_MED)");
example("DateTime.now().setLocale('fr').toLocaleString(DateTime.DATE_FULL)");
example("DateTime.fromISO('2017-05-15')");
example("DateTime.fromISO('2017-05-15T17:36')");
example("DateTime.fromISO('2017-W33-4')");
example("DateTime.fromISO('2017-W33-4T04:45:32.343')");
example("DateTime.fromFormat('12-16-2017', 'MM-dd-yyyy')");
example("DateTime.now().toFormat('MM-dd-yyyy')");
example("DateTime.now().toFormat('MMMM dd, yyyy')");
example("DateTime.now().setLocale('fr').toFormat('MMMM dd, yyyy')");
example("DateTime.fromFormat('May 25, 1982', 'MMMM dd, yyyy')");
example("DateTime.fromFormat('mai 25, 1982', 'MMMM dd, yyyy', { locale: 'fr' })");
example("DateTime.now().plus({ days: 1 }).toRelativeCalendar()");
example("DateTime.now().plus({ days: -1 }).toRelativeCalendar()");
example("DateTime.now().plus({ months: 1 }).toRelativeCalendar()");
example("DateTime.now().setLocale('fr').plus({ days: 1 }).toRelativeCalendar()");
example("DateTime.now().setLocale('fr').plus({ days: -1 }).toRelativeCalendar()");
example("DateTime.now().setLocale('fr').plus({ months: 1 }).toRelativeCalendar()");
let all = "<h1>Some Luxon examples</h1>";
all +=
"<p>This is not meant to be a comprehensive showcase of Luxon's capabilities, just a quick flavoring.</p>";
all += "<table>";
all += examples.join("");
all += "</table>";
document.body.innerHTML = all;
}
if (typeof define !== "undefined") {
define(["luxon"], function (luxon) {
return function () {
demo(luxon);
};
});
} else {
window.demo = demo;
}