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
| export function createDate(y, m, d, h, M, s, ms) {
| // can't just apply() to create a date:
| // https://stackoverflow.com/q/181348
| var date;
| // the date constructor remaps years 0-99 to 1900-1999
| if (y < 100 && y >= 0) {
| // preserve leap years using a full 400 year cycle, then reset
| date = new Date(y + 400, m, d, h, M, s, ms);
| if (isFinite(date.getFullYear())) {
| date.setFullYear(y);
| }
| } else {
| date = new Date(y, m, d, h, M, s, ms);
| }
|
| return date;
| }
|
| export function createUTCDate(y) {
| var date, args;
| // the Date.UTC function remaps years 0-99 to 1900-1999
| if (y < 100 && y >= 0) {
| args = Array.prototype.slice.call(arguments);
| // preserve leap years using a full 400 year cycle, then reset
| args[0] = y + 400;
| date = new Date(Date.UTC.apply(null, args));
| if (isFinite(date.getUTCFullYear())) {
| date.setUTCFullYear(y);
| }
| } else {
| date = new Date(Date.UTC.apply(null, arguments));
| }
|
| return date;
| }
|
|