@formkit/tempo 0.1.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addDay.d.ts +4 -3
- package/dist/addDay.mjs.map +1 -1
- package/dist/addHour.d.ts +4 -3
- package/dist/addHour.mjs.map +1 -1
- package/dist/addMillisecond.d.ts +10 -0
- package/dist/addMillisecond.mjs +11 -0
- package/dist/addMillisecond.mjs.map +1 -0
- package/dist/addMinute.d.ts +5 -4
- package/dist/addMinute.mjs.map +1 -1
- package/dist/addMonth.d.ts +5 -5
- package/dist/addMonth.mjs +1 -2
- package/dist/addMonth.mjs.map +1 -1
- package/dist/addSecond.d.ts +4 -3
- package/dist/addSecond.mjs.map +1 -1
- package/dist/addYear.d.ts +5 -5
- package/dist/addYear.mjs +1 -2
- package/dist/addYear.mjs.map +1 -1
- package/dist/ap.mjs +1 -2
- package/dist/ap.mjs.map +1 -1
- package/dist/applyOffset.d.ts +5 -5
- package/dist/applyOffset.mjs +5 -11
- package/dist/applyOffset.mjs.map +1 -1
- package/dist/bundle.d.ts +256 -115
- package/dist/bundle.mjs +158 -140
- package/dist/bundle.mjs.map +1 -1
- package/dist/common.d.ts +27 -7
- package/dist/common.mjs +47 -42
- package/dist/common.mjs.map +1 -1
- package/dist/date.d.ts +2 -2
- package/dist/date.mjs +1 -3
- package/dist/date.mjs.map +1 -1
- package/dist/dayEnd.d.ts +3 -3
- package/dist/dayEnd.mjs.map +1 -1
- package/dist/dayOfYear.d.ts +3 -3
- package/dist/dayOfYear.mjs.map +1 -1
- package/dist/dayStart.d.ts +3 -3
- package/dist/dayStart.mjs +1 -1
- package/dist/dayStart.mjs.map +1 -1
- package/dist/diffDays.d.ts +12 -5
- package/dist/diffDays.mjs +1 -0
- package/dist/diffDays.mjs.map +1 -1
- package/dist/diffHours.d.ts +12 -5
- package/dist/diffHours.mjs +1 -0
- package/dist/diffHours.mjs.map +1 -1
- package/dist/diffMilliseconds.d.ts +10 -4
- package/dist/diffMilliseconds.mjs.map +1 -1
- package/dist/diffMinutes.d.ts +11 -3
- package/dist/diffMinutes.mjs +5 -1
- package/dist/diffMinutes.mjs.map +1 -1
- package/dist/diffMonths.d.ts +10 -4
- package/dist/diffMonths.mjs.map +1 -1
- package/dist/diffSeconds.d.ts +12 -5
- package/dist/diffSeconds.mjs +5 -1
- package/dist/diffSeconds.mjs.map +1 -1
- package/dist/diffWeeks.d.ts +10 -3
- package/dist/diffWeeks.mjs.map +1 -1
- package/dist/diffYears.d.ts +10 -4
- package/dist/diffYears.mjs +4 -1
- package/dist/diffYears.mjs.map +1 -1
- package/dist/format.mjs +2 -3
- package/dist/format.mjs.map +1 -1
- package/dist/hourEnd.d.ts +3 -3
- package/dist/hourEnd.mjs.map +1 -1
- package/dist/hourStart.d.ts +3 -3
- package/dist/hourStart.mjs +1 -1
- package/dist/hourStart.mjs.map +1 -1
- package/dist/index.cjs +165 -143
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +256 -115
- package/dist/index.d.ts +5 -1
- package/dist/index.mjs +8 -0
- package/dist/index.mjs.map +1 -1
- package/dist/isAfter.d.ts +6 -6
- package/dist/isAfter.mjs.map +1 -1
- package/dist/isBefore.d.ts +5 -5
- package/dist/isBefore.mjs.map +1 -1
- package/dist/isEqual.d.ts +13 -4
- package/dist/isEqual.mjs.map +1 -1
- package/dist/isFuture.d.ts +10 -0
- package/dist/isFuture.mjs +9 -0
- package/dist/isFuture.mjs.map +1 -0
- package/dist/isPast.d.ts +10 -0
- package/dist/isPast.mjs +9 -0
- package/dist/isPast.mjs.map +1 -0
- package/dist/iso8601.d.ts +1 -1
- package/dist/iso8601.mjs +4 -7
- package/dist/iso8601.mjs.map +1 -1
- package/dist/minuteEnd.d.ts +3 -3
- package/dist/minuteEnd.mjs.map +1 -1
- package/dist/minuteStart.d.ts +3 -3
- package/dist/minuteStart.mjs +1 -1
- package/dist/minuteStart.mjs.map +1 -1
- package/dist/monthDays.d.ts +3 -3
- package/dist/monthDays.mjs.map +1 -1
- package/dist/monthEnd.d.ts +3 -3
- package/dist/monthEnd.mjs.map +1 -1
- package/dist/monthStart.d.ts +3 -3
- package/dist/monthStart.mjs +1 -1
- package/dist/monthStart.mjs.map +1 -1
- package/dist/nearestDay.d.ts +3 -3
- package/dist/nearestDay.mjs +2 -4
- package/dist/nearestDay.mjs.map +1 -1
- package/dist/offset.d.ts +5 -5
- package/dist/offset.mjs +3 -3
- package/dist/offset.mjs.map +1 -1
- package/dist/parse.mjs +33 -23
- package/dist/parse.mjs.map +1 -1
- package/dist/parts.mjs +14 -24
- package/dist/parts.mjs.map +1 -1
- package/dist/range.mjs +1 -2
- package/dist/range.mjs.map +1 -1
- package/dist/removeOffset.d.ts +4 -4
- package/dist/removeOffset.mjs.map +1 -1
- package/dist/sameDay.d.ts +8 -2
- package/dist/sameDay.mjs.map +1 -1
- package/dist/sameHour.d.ts +8 -2
- package/dist/sameHour.mjs.map +1 -1
- package/dist/sameMillisecond.d.ts +16 -0
- package/dist/sameMillisecond.mjs +11 -0
- package/dist/sameMillisecond.mjs.map +1 -0
- package/dist/sameMinute.d.ts +8 -2
- package/dist/sameMinute.mjs.map +1 -1
- package/dist/sameMonth.d.ts +16 -0
- package/dist/sameMonth.mjs +11 -0
- package/dist/sameMonth.mjs.map +1 -0
- package/dist/sameSecond.d.ts +8 -2
- package/dist/sameSecond.mjs.map +1 -1
- package/dist/sameYear.d.ts +8 -2
- package/dist/sameYear.mjs.map +1 -1
- package/dist/types.d.ts +15 -7
- package/dist/tzDate.d.ts +5 -3
- package/dist/tzDate.mjs.map +1 -1
- package/dist/weekEnd.d.ts +4 -4
- package/dist/weekEnd.mjs +1 -1
- package/dist/weekEnd.mjs.map +1 -1
- package/dist/weekStart.d.ts +4 -4
- package/dist/weekStart.mjs +2 -3
- package/dist/weekStart.mjs.map +1 -1
- package/dist/yearDays.d.ts +3 -3
- package/dist/yearDays.mjs.map +1 -1
- package/dist/yearEnd.d.ts +3 -3
- package/dist/yearEnd.mjs +1 -2
- package/dist/yearEnd.mjs.map +1 -1
- package/dist/yearStart.d.ts +3 -3
- package/dist/yearStart.mjs +2 -3
- package/dist/yearStart.mjs.map +1 -1
- package/package.json +32 -23
package/dist/index.cjs
CHANGED
|
@@ -18,10 +18,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
|
|
20
20
|
// src/index.ts
|
|
21
|
-
var
|
|
22
|
-
__export(
|
|
21
|
+
var index_exports = {};
|
|
22
|
+
__export(index_exports, {
|
|
23
23
|
addDay: () => addDay,
|
|
24
24
|
addHour: () => addHour,
|
|
25
|
+
addMillisecond: () => addMillisecond,
|
|
25
26
|
addMinute: () => addMinute,
|
|
26
27
|
addMonth: () => addMonth,
|
|
27
28
|
addSecond: () => addSecond,
|
|
@@ -48,6 +49,8 @@ __export(src_exports, {
|
|
|
48
49
|
isAfter: () => isAfter,
|
|
49
50
|
isBefore: () => isBefore,
|
|
50
51
|
isEqual: () => isEqual,
|
|
52
|
+
isFuture: () => isFuture,
|
|
53
|
+
isPast: () => isPast,
|
|
51
54
|
iso8601: () => iso8601,
|
|
52
55
|
minuteEnd: () => minuteEnd,
|
|
53
56
|
minuteStart: () => minuteStart,
|
|
@@ -63,6 +66,7 @@ __export(src_exports, {
|
|
|
63
66
|
removeOffset: () => removeOffset,
|
|
64
67
|
sameDay: () => sameDay,
|
|
65
68
|
sameHour: () => sameHour,
|
|
69
|
+
sameMillisecond: () => sameMillisecond,
|
|
66
70
|
sameMinute: () => sameMinute,
|
|
67
71
|
sameSecond: () => sameSecond,
|
|
68
72
|
sameYear: () => sameYear,
|
|
@@ -73,25 +77,22 @@ __export(src_exports, {
|
|
|
73
77
|
yearEnd: () => yearEnd,
|
|
74
78
|
yearStart: () => yearStart
|
|
75
79
|
});
|
|
76
|
-
module.exports = __toCommonJS(
|
|
80
|
+
module.exports = __toCommonJS(index_exports);
|
|
77
81
|
|
|
78
82
|
// src/iso8601.ts
|
|
79
|
-
var iso8601Match = /^([0-9]{4})-([0-1][0-9])(?:-([0-3][0-9]))?(?:[T ]?([0-2][0-9])(?::([0-5][0-9]))?(?::([0-5][0-9]))?)?(?:\.[0-9]+)?(Z|(?:\+|\-)[0-9]{2}:?[0-9]{2})?$/;
|
|
83
|
+
var iso8601Match = /^([0-9]{4})-([0-1][0-9])(?:-([0-3][0-9]))?(?:[T ]?([0-2][0-9])(?::([0-5][0-9]))?(?::([0-5][0-9]))?)?(?:\.[0-9]+)?(Z|(?:\+|\-)[0-9]{2}:?[0-9]{2}(?::?[0-9]{2})?)?$/;
|
|
80
84
|
function iso8601(date2) {
|
|
81
85
|
const matches = date2.match(iso8601Match);
|
|
82
86
|
if (matches) {
|
|
83
87
|
const month = Number(matches[2]);
|
|
84
|
-
if (month < 1 || month > 12)
|
|
85
|
-
return false;
|
|
88
|
+
if (month < 1 || month > 12) return false;
|
|
86
89
|
if (typeof matches[3] !== void 0) {
|
|
87
90
|
const date3 = Number(matches[3]);
|
|
88
|
-
if (date3 < 1 || date3 > 31)
|
|
89
|
-
return false;
|
|
91
|
+
if (date3 < 1 || date3 > 31) return false;
|
|
90
92
|
}
|
|
91
93
|
if (typeof matches[4] !== void 0) {
|
|
92
94
|
const hours = Number(matches[4]);
|
|
93
|
-
if (hours < 0 || hours > 23)
|
|
94
|
-
return false;
|
|
95
|
+
if (hours < 0 || hours > 23) return false;
|
|
95
96
|
}
|
|
96
97
|
return true;
|
|
97
98
|
}
|
|
@@ -111,9 +112,7 @@ function date(date2) {
|
|
|
111
112
|
date2 = /* @__PURE__ */ new Date();
|
|
112
113
|
}
|
|
113
114
|
if (date2 instanceof Date) {
|
|
114
|
-
|
|
115
|
-
d.setMilliseconds(0);
|
|
116
|
-
return d;
|
|
115
|
+
return new Date(date2);
|
|
117
116
|
}
|
|
118
117
|
date2 = date2.trim();
|
|
119
118
|
if (iso8601(date2)) {
|
|
@@ -148,8 +147,7 @@ function monthDays(inputDate) {
|
|
|
148
147
|
function addMonth(inputDate, count = 1, dateOverflow = false) {
|
|
149
148
|
const d = date(inputDate);
|
|
150
149
|
const dayOfMonth = d.getDate();
|
|
151
|
-
if (!dateOverflow)
|
|
152
|
-
d.setDate(1);
|
|
150
|
+
if (!dateOverflow) d.setDate(1);
|
|
153
151
|
d.setMonth(d.getMonth() + count);
|
|
154
152
|
if (!dateOverflow) {
|
|
155
153
|
const daysInMonth = monthDays(d);
|
|
@@ -162,8 +160,7 @@ function addMonth(inputDate, count = 1, dateOverflow = false) {
|
|
|
162
160
|
function addYear(inputDate, count = 1, dateOverflow = false) {
|
|
163
161
|
const d = date(inputDate);
|
|
164
162
|
const dayOfMonth = d.getDate();
|
|
165
|
-
if (!dateOverflow)
|
|
166
|
-
d.setDate(1);
|
|
163
|
+
if (!dateOverflow) d.setDate(1);
|
|
167
164
|
d.setFullYear(d.getFullYear() + count);
|
|
168
165
|
if (!dateOverflow) {
|
|
169
166
|
const daysInMonth = monthDays(d);
|
|
@@ -193,6 +190,13 @@ function addSecond(inputDate, count = 1) {
|
|
|
193
190
|
return d;
|
|
194
191
|
}
|
|
195
192
|
|
|
193
|
+
// src/addMillisecond.ts
|
|
194
|
+
function addMillisecond(inputDate, count = 1) {
|
|
195
|
+
const d = date(inputDate);
|
|
196
|
+
d.setMilliseconds(d.getMilliseconds() + count);
|
|
197
|
+
return d;
|
|
198
|
+
}
|
|
199
|
+
|
|
196
200
|
// src/common.ts
|
|
197
201
|
var specDate = "1999-03-04T02:05:01.000Z";
|
|
198
202
|
var memoParts = /* @__PURE__ */ new Map();
|
|
@@ -225,6 +229,9 @@ var clock12 = [
|
|
|
225
229
|
["a", { dayPeriod: "narrow" }],
|
|
226
230
|
["A", { dayPeriod: "narrow" }]
|
|
227
231
|
];
|
|
232
|
+
var fractionalSeconds = [
|
|
233
|
+
["SSS", { fractionalSecond: "3-digit" }]
|
|
234
|
+
];
|
|
228
235
|
var fixedLength = {
|
|
229
236
|
DD: 2,
|
|
230
237
|
HH: 2,
|
|
@@ -236,6 +243,12 @@ var fixedLength = {
|
|
|
236
243
|
ss: 2
|
|
237
244
|
};
|
|
238
245
|
function fixedLengthByOffset(offsetString) {
|
|
246
|
+
if (/^[+-]\d{2}:\d{2}:\d{2}/.test(offsetString)) {
|
|
247
|
+
return 9;
|
|
248
|
+
}
|
|
249
|
+
if (/^[+-]\d{6}/.test(offsetString)) {
|
|
250
|
+
return 8;
|
|
251
|
+
}
|
|
239
252
|
if (/^[+-]\d{2}:\d{2}/.test(offsetString)) {
|
|
240
253
|
return 6;
|
|
241
254
|
}
|
|
@@ -246,17 +259,12 @@ function fixedLengthByOffset(offsetString) {
|
|
|
246
259
|
}
|
|
247
260
|
var genitiveTokens = ["MMMM", "MMM", "dddd", "ddd"];
|
|
248
261
|
var tokens = /* @__PURE__ */ new Map(
|
|
249
|
-
/* @__PURE__ */ [...clockAgnostic, ...clock24, ...clock12].map((format2) => {
|
|
262
|
+
/* @__PURE__ */ [...clockAgnostic, ...clock24, ...clock12, ...fractionalSeconds].map((format2) => {
|
|
250
263
|
return [format2[0], format2];
|
|
251
264
|
})
|
|
252
265
|
);
|
|
253
266
|
var dayPeriodMap = /* @__PURE__ */ new Map();
|
|
254
|
-
var styles = [
|
|
255
|
-
"full",
|
|
256
|
-
"long",
|
|
257
|
-
"medium",
|
|
258
|
-
"short"
|
|
259
|
-
];
|
|
267
|
+
var styles = ["full", "long", "medium", "short"];
|
|
260
268
|
var two = (n) => String(n).padStart(2, "0");
|
|
261
269
|
var four = (n) => String(n).padStart(2, "0");
|
|
262
270
|
function normStr(part) {
|
|
@@ -269,8 +277,7 @@ function fill(inputDate, parts2, locale, genitive = false, offset2 = null) {
|
|
|
269
277
|
const partMap = createPartMap(inputDate, parts2, locale, genitive);
|
|
270
278
|
const d = date(inputDate);
|
|
271
279
|
function value({ partName, partValue, token }) {
|
|
272
|
-
if (partName === "literal")
|
|
273
|
-
return partValue;
|
|
280
|
+
if (partName === "literal") return partValue;
|
|
274
281
|
const value2 = partMap[partName];
|
|
275
282
|
if (partName === "hour" && token === "H") {
|
|
276
283
|
return value2.replace(/^0/, "") || "0";
|
|
@@ -282,6 +289,9 @@ function fill(inputDate, parts2, locale, genitive = false, offset2 = null) {
|
|
|
282
289
|
const p = ap(d.getUTCHours() < 12 ? "am" : "pm", locale);
|
|
283
290
|
return token === "A" ? p.toUpperCase() : p.toLowerCase();
|
|
284
291
|
}
|
|
292
|
+
if (partName === "fractionalSecond") {
|
|
293
|
+
return String(d.getUTCMilliseconds()).padStart(3, "0");
|
|
294
|
+
}
|
|
285
295
|
if (partName === "timeZoneName") {
|
|
286
296
|
return offset2 != null ? offset2 : minsToOffset(-1 * d.getTimezoneOffset(), token);
|
|
287
297
|
}
|
|
@@ -307,8 +317,7 @@ function createPartMap(inputDate, parts2, locale, genitive = false) {
|
|
|
307
317
|
preciseLocale,
|
|
308
318
|
requestedParts.reduce(
|
|
309
319
|
(options, part) => {
|
|
310
|
-
if (part.partName === "literal")
|
|
311
|
-
return options;
|
|
320
|
+
if (part.partName === "literal") return options;
|
|
312
321
|
if (genitive && genitiveTokens.includes(part.token)) {
|
|
313
322
|
genitiveParts.push(part);
|
|
314
323
|
}
|
|
@@ -335,9 +344,7 @@ function createPartMap(inputDate, parts2, locale, genitive = false) {
|
|
|
335
344
|
}).formatToParts(d).map(normStr);
|
|
336
345
|
break;
|
|
337
346
|
}
|
|
338
|
-
const genitiveFormattedPart = formattedParts.find(
|
|
339
|
-
(p) => p.type === part.partName
|
|
340
|
-
);
|
|
347
|
+
const genitiveFormattedPart = formattedParts.find((p) => p.type === part.partName);
|
|
341
348
|
const index = valueParts.findIndex((p) => p.type === part.partName);
|
|
342
349
|
if (genitiveFormattedPart && index > -1) {
|
|
343
350
|
valueParts[index] = genitiveFormattedPart;
|
|
@@ -345,50 +352,48 @@ function createPartMap(inputDate, parts2, locale, genitive = false) {
|
|
|
345
352
|
}
|
|
346
353
|
}
|
|
347
354
|
}
|
|
348
|
-
if (hour12.length)
|
|
349
|
-
|
|
350
|
-
if (hour24.length)
|
|
351
|
-
addValues(hour24);
|
|
355
|
+
if (hour12.length) addValues(hour12, true);
|
|
356
|
+
if (hour24.length) addValues(hour24);
|
|
352
357
|
return valueParts.reduce((map, part) => {
|
|
353
358
|
map[part.type] = part.value;
|
|
354
359
|
return map;
|
|
355
360
|
}, {});
|
|
356
361
|
}
|
|
357
|
-
function
|
|
358
|
-
const
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
);
|
|
362
|
-
const
|
|
363
|
-
const sign = timeDiffInMins < 0 ? "-" : "+";
|
|
362
|
+
function secsToOffset(totalSecs, token = "Z") {
|
|
363
|
+
const sign = totalSecs < 0 ? "-" : "+";
|
|
364
|
+
const absSecs = Math.abs(totalSecs);
|
|
365
|
+
const hours = String(Math.floor(absSecs / 3600)).padStart(2, "0");
|
|
366
|
+
const mins = String(Math.floor(absSecs % 3600 / 60)).padStart(2, "0");
|
|
367
|
+
const secs = Math.round(absSecs % 60);
|
|
364
368
|
if (token === "ZZ") {
|
|
365
|
-
return `${sign}${hours}${mins}`;
|
|
369
|
+
return secs === 0 ? `${sign}${hours}${mins}` : `${sign}${hours}${mins}${String(secs).padStart(2, "0")}`;
|
|
366
370
|
}
|
|
367
|
-
return `${sign}${hours}:${mins}`;
|
|
371
|
+
return secs === 0 ? `${sign}${hours}:${mins}` : `${sign}${hours}:${mins}:${String(secs).padStart(2, "0")}`;
|
|
372
|
+
}
|
|
373
|
+
function minsToOffset(timeDiffInMins, token = "Z") {
|
|
374
|
+
return secsToOffset(timeDiffInMins * 60, token);
|
|
368
375
|
}
|
|
369
|
-
function
|
|
376
|
+
function offsetToSecs(offset2, token) {
|
|
370
377
|
validOffset(offset2, token);
|
|
371
|
-
const
|
|
372
|
-
|
|
373
|
-
);
|
|
374
|
-
|
|
375
|
-
return sign === "+" ? offsetInMins : -offsetInMins;
|
|
378
|
+
const match = offset2.match(/([+-])([0-3][0-9]):?([0-5][0-9])(?::?([0-5][0-9]))?/);
|
|
379
|
+
const [_, sign, hours, mins, secs = "0"] = match;
|
|
380
|
+
const totalSecs = Number(hours) * 3600 + Number(mins) * 60 + Number(secs);
|
|
381
|
+
return sign === "+" ? totalSecs : -totalSecs;
|
|
376
382
|
}
|
|
377
383
|
function validOffset(offset2, token = "Z") {
|
|
378
384
|
const valid = ((token2) => {
|
|
379
385
|
switch (token2) {
|
|
380
386
|
case "Z":
|
|
381
|
-
return /^([+-])[0-3][0-9]:[0-
|
|
387
|
+
return /^([+-])[0-3][0-9]:[0-5][0-9](?::[0-5][0-9])?$/.test(offset2);
|
|
382
388
|
case "ZZ":
|
|
383
|
-
return /^([+-])[0-3][0-9][0-
|
|
389
|
+
return /^([+-])[0-3][0-9][0-5][0-9](?:[0-5][0-9])?$/.test(offset2);
|
|
384
390
|
}
|
|
385
391
|
})(token);
|
|
386
|
-
if (!valid)
|
|
387
|
-
throw new Error(`Invalid offset: ${offset2}`);
|
|
392
|
+
if (!valid) throw new Error(`Invalid offset: ${offset2}`);
|
|
388
393
|
return offset2;
|
|
389
394
|
}
|
|
390
395
|
function escapeTokens(str) {
|
|
391
|
-
return clockAgnostic.concat(clock24).concat(clock12).sort((a, b) => a[0].length > b[0].length ? 1 : -1).reduce((target, part) => {
|
|
396
|
+
return clockAgnostic.concat(clock24).concat(clock12).concat(fractionalSeconds).sort((a, b) => a[0].length > b[0].length ? 1 : -1).reduce((target, part) => {
|
|
392
397
|
return target.replace(part[0], `\\${part[0]}`);
|
|
393
398
|
}, str);
|
|
394
399
|
}
|
|
@@ -402,10 +407,8 @@ function validate(parts2) {
|
|
|
402
407
|
throw new Error(`Numbers in format (${part.partValue}).`);
|
|
403
408
|
}
|
|
404
409
|
if (lastPart && lastPart.partName !== "literal" && part.partName !== "literal") {
|
|
405
|
-
if (!(lastPart.token in fixedLength) && !(part.token in fixedLength) && !(isNumeric(lastPart) && part.token.toLowerCase() === "a")) {
|
|
406
|
-
throw new Error(
|
|
407
|
-
`Illegal adjacent tokens (${lastPart.token}, ${part.token})`
|
|
408
|
-
);
|
|
410
|
+
if (!(lastPart.token in fixedLength) && !(part.token in fixedLength) && !(isNumeric(lastPart) && part.token.toLowerCase() === "a") && lastPart.token !== "SSS") {
|
|
411
|
+
throw new Error(`Illegal adjacent tokens (${lastPart.token}, ${part.token})`);
|
|
409
412
|
}
|
|
410
413
|
}
|
|
411
414
|
lastPart = part;
|
|
@@ -422,8 +425,7 @@ function getOffsetFormat(format2) {
|
|
|
422
425
|
// src/ap.ts
|
|
423
426
|
function ap(ampm, locale) {
|
|
424
427
|
const l = dayPeriodMap.get(locale);
|
|
425
|
-
if (l && l[ampm])
|
|
426
|
-
return l[ampm];
|
|
428
|
+
if (l && l[ampm]) return l[ampm];
|
|
427
429
|
const specimen = new Date(specDate);
|
|
428
430
|
specimen.setUTCHours(ampm === "am" ? 5 : 20);
|
|
429
431
|
const subparts = new Intl.DateTimeFormat(locale, {
|
|
@@ -446,16 +448,10 @@ function ap(ampm, locale) {
|
|
|
446
448
|
// src/applyOffset.ts
|
|
447
449
|
function applyOffset(dateInput, offset2 = "+00:00") {
|
|
448
450
|
const d = date(dateInput);
|
|
449
|
-
const
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
case 6:
|
|
454
|
-
return "Z";
|
|
455
|
-
}
|
|
456
|
-
})();
|
|
457
|
-
const timeDiffInMins = offsetToMins(offset2, token);
|
|
458
|
-
return new Date(d.getTime() + timeDiffInMins * 1e3 * 60);
|
|
451
|
+
const len = fixedLengthByOffset(offset2);
|
|
452
|
+
const token = len === 5 || len === 8 ? "ZZ" : "Z";
|
|
453
|
+
const timeDiffInSecs = offsetToSecs(offset2, token);
|
|
454
|
+
return new Date(d.getTime() + timeDiffInSecs * 1e3);
|
|
459
455
|
}
|
|
460
456
|
|
|
461
457
|
// src/deviceTZ.ts
|
|
@@ -489,8 +485,8 @@ function offset(utcTime, tzA = "UTC", tzB = "device", timeZoneToken = "Z") {
|
|
|
489
485
|
const d = date(utcTime);
|
|
490
486
|
const timeA = relativeTime(d, tzA);
|
|
491
487
|
const timeB = relativeTime(d, tzB);
|
|
492
|
-
const
|
|
493
|
-
return
|
|
488
|
+
const timeDiffInSecs = Math.round((timeB.getTime() - timeA.getTime()) / 1e3);
|
|
489
|
+
return secsToOffset(timeDiffInSecs, timeZoneToken);
|
|
494
490
|
}
|
|
495
491
|
|
|
496
492
|
// src/tzDate.ts
|
|
@@ -517,7 +513,7 @@ function dayEnd(inputDate) {
|
|
|
517
513
|
// src/dayStart.ts
|
|
518
514
|
function dayStart(inputDate) {
|
|
519
515
|
const d = date(inputDate);
|
|
520
|
-
d.setHours(0, 0, 0);
|
|
516
|
+
d.setHours(0, 0, 0, 0);
|
|
521
517
|
return d;
|
|
522
518
|
}
|
|
523
519
|
|
|
@@ -529,13 +525,11 @@ function parts(format2, locale) {
|
|
|
529
525
|
let f = format2;
|
|
530
526
|
let match = 0;
|
|
531
527
|
const testPattern = (pattern) => {
|
|
532
|
-
if (!pattern[2])
|
|
533
|
-
pattern[2] = new RegExp(`(.)?(${pattern[0]})`, "g");
|
|
528
|
+
if (!pattern[2]) pattern[2] = new RegExp(`(.)?(${pattern[0]})`, "g");
|
|
534
529
|
if (pattern[2].test(f)) {
|
|
535
530
|
let didAdd = 0;
|
|
536
531
|
f = f.replace(pattern[2], (_, prefix, actualMatch) => {
|
|
537
|
-
if (prefix === "\\")
|
|
538
|
-
return actualMatch;
|
|
532
|
+
if (prefix === "\\") return actualMatch;
|
|
539
533
|
return `${typeof prefix === "string" ? prefix : ""}{!${didAdd++ ? match : match++}!}`;
|
|
540
534
|
});
|
|
541
535
|
return !!didAdd;
|
|
@@ -562,7 +556,7 @@ function parts(format2, locale) {
|
|
|
562
556
|
hour12
|
|
563
557
|
};
|
|
564
558
|
}
|
|
565
|
-
const found24Patterns = clockAgnostic.filter(testPattern).concat(clock24.filter(testPattern)).map(createPart.bind(null, false));
|
|
559
|
+
const found24Patterns = clockAgnostic.filter(testPattern).concat(clock24.filter(testPattern)).concat(fractionalSeconds.filter(testPattern)).map(createPart.bind(null, false));
|
|
566
560
|
const parts2 = validate2(
|
|
567
561
|
found24Patterns.concat(
|
|
568
562
|
clock12.filter(testPattern).map(createPart.bind(null, true))
|
|
@@ -591,10 +585,8 @@ function styleParts(format2, locale) {
|
|
|
591
585
|
if (typeof format2 === "string") {
|
|
592
586
|
options.dateStyle = format2;
|
|
593
587
|
} else {
|
|
594
|
-
if ("date" in format2)
|
|
595
|
-
|
|
596
|
-
if ("time" in format2)
|
|
597
|
-
options.timeStyle = format2.time;
|
|
588
|
+
if ("date" in format2) options.dateStyle = format2.date;
|
|
589
|
+
if ("time" in format2) options.timeStyle = format2.time;
|
|
598
590
|
}
|
|
599
591
|
const formatter = new Intl.DateTimeFormat(locale, options);
|
|
600
592
|
const segments = formatter.formatToParts(new Date(specDate)).map(normStr);
|
|
@@ -610,11 +602,9 @@ function styleParts(format2, locale) {
|
|
|
610
602
|
part.type === "hour" ? hourType : void 0,
|
|
611
603
|
options
|
|
612
604
|
);
|
|
613
|
-
if (formatPattern === void 0)
|
|
614
|
-
return;
|
|
605
|
+
if (formatPattern === void 0) return;
|
|
615
606
|
const partValue = formatPattern[1][partName];
|
|
616
|
-
if (!partValue)
|
|
617
|
-
return;
|
|
607
|
+
if (!partValue) return;
|
|
618
608
|
if (!formatPattern[2])
|
|
619
609
|
formatPattern[2] = new RegExp(`${formatPattern[0]}`, "g");
|
|
620
610
|
return {
|
|
@@ -635,8 +625,7 @@ function guessPattern(partName, partValue, locale, hour, options) {
|
|
|
635
625
|
case "year":
|
|
636
626
|
return l === 2 ? tokens.get("YY") : tokens.get("YYYY");
|
|
637
627
|
case "month":
|
|
638
|
-
if (n)
|
|
639
|
-
return l === 1 ? tokens.get("M") : tokens.get("MM");
|
|
628
|
+
if (n) return l === 1 ? tokens.get("M") : tokens.get("MM");
|
|
640
629
|
style = partStyle(locale, partName, partValue);
|
|
641
630
|
switch (style) {
|
|
642
631
|
case "long":
|
|
@@ -657,8 +646,7 @@ function guessPattern(partName, partValue, locale, hour, options) {
|
|
|
657
646
|
return tokens.get("dddd");
|
|
658
647
|
}
|
|
659
648
|
case "hour":
|
|
660
|
-
if (hour === 12)
|
|
661
|
-
return l === 1 ? tokens.get("h") : tokens.get("hh");
|
|
649
|
+
if (hour === 12) return l === 1 ? tokens.get("h") : tokens.get("hh");
|
|
662
650
|
return l === 1 ? tokens.get("H") : tokens.get("HH");
|
|
663
651
|
case "minute":
|
|
664
652
|
return l === 1 ? tokens.get("m") : tokens.get("mm");
|
|
@@ -683,8 +671,7 @@ function partStyle(locale, part, value) {
|
|
|
683
671
|
const formats2 = {};
|
|
684
672
|
for (let i = 0; i < 12; i++) {
|
|
685
673
|
date2.setMonth(0 + i);
|
|
686
|
-
if (i in weekdays)
|
|
687
|
-
date2.setDate(weekdays[i]);
|
|
674
|
+
if (i in weekdays) date2.setDate(weekdays[i]);
|
|
688
675
|
date2.setUTCHours(8 + i);
|
|
689
676
|
for (const style of partStyles) {
|
|
690
677
|
const segments = new Intl.DateTimeFormat(
|
|
@@ -703,12 +690,10 @@ function partStyle(locale, part, value) {
|
|
|
703
690
|
(part2) => part2.type === "month"
|
|
704
691
|
);
|
|
705
692
|
const index = segments.findIndex((part2) => part2.type === "month");
|
|
706
|
-
if (index > -1 && genitiveMonth)
|
|
707
|
-
segments[index] = genitiveMonth;
|
|
693
|
+
if (index > -1 && genitiveMonth) segments[index] = genitiveMonth;
|
|
708
694
|
}
|
|
709
695
|
segments.forEach((part2) => {
|
|
710
|
-
if (part2.type === "literal")
|
|
711
|
-
return;
|
|
696
|
+
if (part2.type === "literal") return;
|
|
712
697
|
const type = part2.type;
|
|
713
698
|
formats2[type] = Object.assign(formats2[type] || {}, {
|
|
714
699
|
[part2.value]: style
|
|
@@ -750,8 +735,7 @@ function format(inputDateOrOptions, format2 = "long", locale = "device", genitiv
|
|
|
750
735
|
tz
|
|
751
736
|
} = inputDateOrOptions);
|
|
752
737
|
}
|
|
753
|
-
if (format2 === "ISO8601")
|
|
754
|
-
return date(inputDateOrOptions).toISOString();
|
|
738
|
+
if (format2 === "ISO8601") return date(inputDateOrOptions).toISOString();
|
|
755
739
|
if (tz) {
|
|
756
740
|
forceOffset = offset(inputDateOrOptions, "utc", tz, getOffsetFormat(format2));
|
|
757
741
|
}
|
|
@@ -767,7 +751,7 @@ function format(inputDateOrOptions, format2 = "long", locale = "device", genitiv
|
|
|
767
751
|
}
|
|
768
752
|
return fill(
|
|
769
753
|
inputDateOrOptions,
|
|
770
|
-
parts(format2, locale).filter(partFilter != null ? partFilter : () => true),
|
|
754
|
+
parts(format2, locale).filter(partFilter != null ? partFilter : (() => true)),
|
|
771
755
|
locale,
|
|
772
756
|
genitive,
|
|
773
757
|
forceOffset
|
|
@@ -801,7 +785,7 @@ function hourEnd(inputDate) {
|
|
|
801
785
|
// src/hourStart.ts
|
|
802
786
|
function hourStart(inputDate) {
|
|
803
787
|
const d = date(inputDate);
|
|
804
|
-
d.setMinutes(0, 0);
|
|
788
|
+
d.setMinutes(0, 0, 0);
|
|
805
789
|
return d;
|
|
806
790
|
}
|
|
807
791
|
|
|
@@ -815,7 +799,7 @@ function minuteEnd(inputDate) {
|
|
|
815
799
|
// src/minuteStart.ts
|
|
816
800
|
function minuteStart(inputDate) {
|
|
817
801
|
const d = date(inputDate);
|
|
818
|
-
d.setSeconds(0);
|
|
802
|
+
d.setSeconds(0, 0);
|
|
819
803
|
return d;
|
|
820
804
|
}
|
|
821
805
|
|
|
@@ -823,7 +807,7 @@ function minuteStart(inputDate) {
|
|
|
823
807
|
function monthStart(inputDate) {
|
|
824
808
|
const d = date(inputDate);
|
|
825
809
|
d.setDate(1);
|
|
826
|
-
d.setHours(0, 0, 0);
|
|
810
|
+
d.setHours(0, 0, 0, 0);
|
|
827
811
|
return d;
|
|
828
812
|
}
|
|
829
813
|
|
|
@@ -859,13 +843,11 @@ function nearestDay(inputDate, search, constraint = 7) {
|
|
|
859
843
|
for (let i = 0; i <= increments || i < decrements; i++) {
|
|
860
844
|
if (i <= increments) {
|
|
861
845
|
const next = addDay(d, i);
|
|
862
|
-
if (search(next))
|
|
863
|
-
return next;
|
|
846
|
+
if (search(next)) return next;
|
|
864
847
|
}
|
|
865
848
|
if (i && i <= decrements) {
|
|
866
849
|
const prev = addDay(d, -i);
|
|
867
|
-
if (search(prev))
|
|
868
|
-
return prev;
|
|
850
|
+
if (search(prev)) return prev;
|
|
869
851
|
}
|
|
870
852
|
}
|
|
871
853
|
return null;
|
|
@@ -874,8 +856,7 @@ function nearestDay(inputDate, search, constraint = 7) {
|
|
|
874
856
|
// src/range.ts
|
|
875
857
|
function range(token, locale = "en", genitive = false) {
|
|
876
858
|
const r = (n, c) => Array(n).fill("").map((_, i) => `${c(i)}`);
|
|
877
|
-
if (token === "M")
|
|
878
|
-
return r(12, (i) => i + 1);
|
|
859
|
+
if (token === "M") return r(12, (i) => i + 1);
|
|
879
860
|
if (token === "MM")
|
|
880
861
|
return r(12, (i) => {
|
|
881
862
|
const m = i + 1;
|
|
@@ -933,19 +914,16 @@ function parse(dateStrOrOptions, format2 = "ISO8601", locale = "device") {
|
|
|
933
914
|
} else {
|
|
934
915
|
dateStr = dateStrOrOptions;
|
|
935
916
|
}
|
|
936
|
-
if (!dateStr)
|
|
937
|
-
throw new Error("parse() requires a date string.");
|
|
917
|
+
if (!dateStr) throw new Error("parse() requires a date string.");
|
|
938
918
|
const invalid = () => {
|
|
939
919
|
throw new Error(
|
|
940
920
|
`Date (${dateStr}) does not match format (${formatStr(format2, locale)})`
|
|
941
921
|
);
|
|
942
922
|
};
|
|
943
|
-
if (format2 === "ISO8601")
|
|
944
|
-
return date(dateStr);
|
|
923
|
+
if (format2 === "ISO8601") return date(dateStr);
|
|
945
924
|
const genitive = styles.includes(format2) || typeof format2 === "object";
|
|
946
925
|
const formatParts = validate(parts(format2, locale).filter(partFilter));
|
|
947
|
-
if (!formatParts.length)
|
|
948
|
-
throw new Error("parse() requires a pattern.");
|
|
926
|
+
if (!formatParts.length) throw new Error("parse() requires a pattern.");
|
|
949
927
|
let parsedParts;
|
|
950
928
|
try {
|
|
951
929
|
parsedParts = parseParts(dateStr, formatParts);
|
|
@@ -959,17 +937,19 @@ function parse(dateStrOrOptions, format2 = "ISO8601", locale = "device") {
|
|
|
959
937
|
["DD", now.getDate()],
|
|
960
938
|
["HH", 0],
|
|
961
939
|
["mm", 0],
|
|
962
|
-
["ss", 0]
|
|
940
|
+
["ss", 0],
|
|
941
|
+
["SSS", 0]
|
|
963
942
|
]);
|
|
964
943
|
let a = null;
|
|
965
944
|
let offset2 = "";
|
|
966
945
|
parsedParts.forEach((part) => {
|
|
967
|
-
if (part.partName === "literal")
|
|
968
|
-
|
|
969
|
-
if (part.token === part.value)
|
|
970
|
-
return invalid();
|
|
946
|
+
if (part.partName === "literal") return;
|
|
947
|
+
if (part.token === part.value) return invalid();
|
|
971
948
|
const v = Number(part.value);
|
|
972
|
-
if (
|
|
949
|
+
if (part.token === "SSS") {
|
|
950
|
+
const digits = part.value.padEnd(3, "0").slice(0, 3);
|
|
951
|
+
parsed.set("SSS", Number(digits));
|
|
952
|
+
} else if (parsed.has(part.token)) {
|
|
973
953
|
parsed.set(part.token, v);
|
|
974
954
|
} else if (part.token === "YY") {
|
|
975
955
|
parsed.set("YYYY", fourDigitYear(part.value));
|
|
@@ -1009,17 +989,24 @@ function parse(dateStrOrOptions, format2 = "ISO8601", locale = "device") {
|
|
|
1009
989
|
parsed.set("HH", 0);
|
|
1010
990
|
}
|
|
1011
991
|
parsed.set("MM", (parsed.get("MM") || 1) - 1);
|
|
1012
|
-
let [Y, M, D, h, m, s] = Array.from(parsed.values());
|
|
992
|
+
let [Y, M, D, h, m, s, ms] = Array.from(parsed.values());
|
|
1013
993
|
const maxDaysInMonth = monthDays(/* @__PURE__ */ new Date(`${four(Y)}-${two(M + 1)}-10`));
|
|
1014
994
|
if (maxDaysInMonth < D && dateOverflow === "throw")
|
|
1015
995
|
throw new Error(`Invalid date ${four(Y)}-${two(M + 1)}-${two(D)}`);
|
|
1016
996
|
D = dateOverflow === "backward" ? Math.min(D, maxDaysInMonth) : D;
|
|
1017
|
-
const
|
|
1018
|
-
|
|
1019
|
-
|
|
997
|
+
const msStr = String(ms).padStart(3, "0");
|
|
998
|
+
if (offset2) {
|
|
999
|
+
const isoStringUtc = `${four(Y)}-${two(M + 1)}-${two(D)}T${two(h)}:${two(m)}:${two(s)}.${msStr}Z`;
|
|
1000
|
+
const d2 = new Date(isoStringUtc);
|
|
1001
|
+
if (!isFinite(+d2)) return invalid();
|
|
1002
|
+
const len = fixedLengthByOffset(offset2);
|
|
1003
|
+
const token = len === 5 || len === 8 ? "ZZ" : "Z";
|
|
1004
|
+
const offsetSecs = offsetToSecs(offset2, token);
|
|
1005
|
+
return new Date(d2.getTime() - offsetSecs * 1e3);
|
|
1006
|
+
}
|
|
1007
|
+
const isoString = `${four(Y)}-${two(M + 1)}-${two(D)}T${two(h)}:${two(m)}:${two(s)}.${msStr}`;
|
|
1020
1008
|
const d = new Date(isoString);
|
|
1021
|
-
if (isFinite(+d))
|
|
1022
|
-
return d;
|
|
1009
|
+
if (isFinite(+d)) return d;
|
|
1023
1010
|
return invalid();
|
|
1024
1011
|
}
|
|
1025
1012
|
function parseParts(dateStr, formatParts) {
|
|
@@ -1039,13 +1026,18 @@ function parseParts(dateStr, formatParts) {
|
|
|
1039
1026
|
len = current.partValue.length;
|
|
1040
1027
|
} else if (current.partName === "timeZoneName") {
|
|
1041
1028
|
len = fixedLengthByOffset(dateStr.substring(pos));
|
|
1029
|
+
} else if (current.token === "SSS") {
|
|
1030
|
+
let end = pos;
|
|
1031
|
+
while (end < dateStr.length && /\d/.test(dateStr.charAt(end))) {
|
|
1032
|
+
end++;
|
|
1033
|
+
}
|
|
1034
|
+
len = end - pos;
|
|
1042
1035
|
} else if (current.token in fixedLength) {
|
|
1043
1036
|
len = fixedLength[current.token];
|
|
1044
1037
|
} else if (next) {
|
|
1045
1038
|
if (next.partName === "literal") {
|
|
1046
1039
|
len = dateStr.indexOf(next.partValue, pos) - pos;
|
|
1047
|
-
if (len < 0)
|
|
1048
|
-
throw new Error();
|
|
1040
|
+
if (len < 0) throw new Error();
|
|
1049
1041
|
} else if (next.partName === "dayPeriod") {
|
|
1050
1042
|
for (let i2 = 1; i2 <= 4; i2++) {
|
|
1051
1043
|
if (isNaN(Number(dateStr.charAt(pos + i2)))) {
|
|
@@ -1055,8 +1047,7 @@ function parseParts(dateStr, formatParts) {
|
|
|
1055
1047
|
}
|
|
1056
1048
|
} else {
|
|
1057
1049
|
const nextChar = dateStr.substring(pos).search(/\d/);
|
|
1058
|
-
if (nextChar !== -1)
|
|
1059
|
-
len = pos + nextChar;
|
|
1050
|
+
if (nextChar !== -1) len = pos + nextChar;
|
|
1060
1051
|
}
|
|
1061
1052
|
} else {
|
|
1062
1053
|
len = dateStr.length;
|
|
@@ -1081,6 +1072,13 @@ function sameSecond(inputDateA, inputDateB) {
|
|
|
1081
1072
|
return a.getSeconds() === b.getSeconds();
|
|
1082
1073
|
}
|
|
1083
1074
|
|
|
1075
|
+
// src/sameMillisecond.ts
|
|
1076
|
+
function sameMillisecond(inputDateA, inputDateB) {
|
|
1077
|
+
const a = date(inputDateA);
|
|
1078
|
+
const b = date(inputDateB);
|
|
1079
|
+
return a.getMilliseconds() === b.getMilliseconds();
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1084
1082
|
// src/sameMinute.ts
|
|
1085
1083
|
function sameMinute(inputDateA, inputDateB) {
|
|
1086
1084
|
const a = date(inputDateA);
|
|
@@ -1106,10 +1104,9 @@ function sameYear(inputDateA, inputDateB) {
|
|
|
1106
1104
|
function weekStart(inputDate, startOfWeekDay = 0) {
|
|
1107
1105
|
const d = date(inputDate);
|
|
1108
1106
|
let diff = startOfWeekDay - d.getDay();
|
|
1109
|
-
if (diff > 0)
|
|
1110
|
-
diff = diff - 7;
|
|
1107
|
+
if (diff > 0) diff = diff - 7;
|
|
1111
1108
|
d.setDate(d.getDate() + diff);
|
|
1112
|
-
d.setHours(0, 0, 0);
|
|
1109
|
+
d.setHours(0, 0, 0, 0);
|
|
1113
1110
|
return d;
|
|
1114
1111
|
}
|
|
1115
1112
|
|
|
@@ -1117,24 +1114,22 @@ function weekStart(inputDate, startOfWeekDay = 0) {
|
|
|
1117
1114
|
function weekEnd(inputDate, startOfWeekDay = 0) {
|
|
1118
1115
|
const d = weekStart(inputDate, startOfWeekDay);
|
|
1119
1116
|
d.setDate(d.getDate() + 6);
|
|
1120
|
-
d.setHours(23, 59, 59);
|
|
1117
|
+
d.setHours(23, 59, 59, 999);
|
|
1121
1118
|
return d;
|
|
1122
1119
|
}
|
|
1123
1120
|
|
|
1124
1121
|
// src/yearStart.ts
|
|
1125
1122
|
function yearStart(inputDate) {
|
|
1126
1123
|
const d = date(inputDate);
|
|
1127
|
-
d.setMonth(0);
|
|
1128
|
-
d.
|
|
1129
|
-
d.setHours(0, 0, 0);
|
|
1124
|
+
d.setMonth(0, 1);
|
|
1125
|
+
d.setHours(0, 0, 0, 0);
|
|
1130
1126
|
return d;
|
|
1131
1127
|
}
|
|
1132
1128
|
|
|
1133
1129
|
// src/yearEnd.ts
|
|
1134
1130
|
function yearEnd(inputDate) {
|
|
1135
1131
|
const d = date(inputDate);
|
|
1136
|
-
d.setMonth(11);
|
|
1137
|
-
d.setDate(31);
|
|
1132
|
+
d.setMonth(11, 31);
|
|
1138
1133
|
d.setHours(23, 59, 59, 999);
|
|
1139
1134
|
return d;
|
|
1140
1135
|
}
|
|
@@ -1160,6 +1155,16 @@ function isEqual(dateLeft, dateRight) {
|
|
|
1160
1155
|
return +_dateLeft === +_dateRight;
|
|
1161
1156
|
}
|
|
1162
1157
|
|
|
1158
|
+
// src/isPast.ts
|
|
1159
|
+
function isPast(inputDate) {
|
|
1160
|
+
return isBefore(inputDate);
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
// src/isFuture.ts
|
|
1164
|
+
function isFuture(inputDate) {
|
|
1165
|
+
return isAfter(inputDate);
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1163
1168
|
// src/diffMilliseconds.ts
|
|
1164
1169
|
function diffMilliseconds(dateA, dateB) {
|
|
1165
1170
|
const left = date(dateA);
|
|
@@ -1175,17 +1180,26 @@ function diffRound(value, method = "trunc") {
|
|
|
1175
1180
|
|
|
1176
1181
|
// src/diffSeconds.ts
|
|
1177
1182
|
function diffSeconds(dateA, dateB, roundingMethod) {
|
|
1178
|
-
return diffRound(
|
|
1183
|
+
return diffRound(
|
|
1184
|
+
// @ts-ignore
|
|
1185
|
+
diffMilliseconds(dateA, dateB) / 1e3,
|
|
1186
|
+
roundingMethod
|
|
1187
|
+
);
|
|
1179
1188
|
}
|
|
1180
1189
|
|
|
1181
1190
|
// src/diffMinutes.ts
|
|
1182
1191
|
function diffMinutes(dateA, dateB, roundingMethod) {
|
|
1183
|
-
return diffRound(
|
|
1192
|
+
return diffRound(
|
|
1193
|
+
//@ts-ignore
|
|
1194
|
+
diffMilliseconds(dateA, dateB) / 6e4,
|
|
1195
|
+
roundingMethod
|
|
1196
|
+
);
|
|
1184
1197
|
}
|
|
1185
1198
|
|
|
1186
1199
|
// src/diffHours.ts
|
|
1187
1200
|
function diffHours(dateA, dateB, roundingMethod) {
|
|
1188
1201
|
return diffRound(
|
|
1202
|
+
//@ts-ignore
|
|
1189
1203
|
diffMilliseconds(dateA, dateB) / 36e5,
|
|
1190
1204
|
// 1000 * 60 * 60
|
|
1191
1205
|
roundingMethod
|
|
@@ -1195,6 +1209,7 @@ function diffHours(dateA, dateB, roundingMethod) {
|
|
|
1195
1209
|
// src/diffDays.ts
|
|
1196
1210
|
function diffDays(dateA, dateB, roundingMethod) {
|
|
1197
1211
|
return diffRound(
|
|
1212
|
+
// @ts-ignore
|
|
1198
1213
|
diffMilliseconds(dateA, dateB) / 864e5,
|
|
1199
1214
|
// hour * 24
|
|
1200
1215
|
roundingMethod
|
|
@@ -1232,13 +1247,17 @@ function diffMonths(dateA, dateB) {
|
|
|
1232
1247
|
|
|
1233
1248
|
// src/diffYears.ts
|
|
1234
1249
|
function diffYears(dateA, dateB) {
|
|
1235
|
-
const r = Math.trunc(
|
|
1250
|
+
const r = Math.trunc(
|
|
1251
|
+
//@ts-ignore
|
|
1252
|
+
diffMonths(dateA, dateB) / 12
|
|
1253
|
+
);
|
|
1236
1254
|
return r == 0 ? 0 : r;
|
|
1237
1255
|
}
|
|
1238
1256
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1239
1257
|
0 && (module.exports = {
|
|
1240
1258
|
addDay,
|
|
1241
1259
|
addHour,
|
|
1260
|
+
addMillisecond,
|
|
1242
1261
|
addMinute,
|
|
1243
1262
|
addMonth,
|
|
1244
1263
|
addSecond,
|
|
@@ -1265,6 +1284,8 @@ function diffYears(dateA, dateB) {
|
|
|
1265
1284
|
isAfter,
|
|
1266
1285
|
isBefore,
|
|
1267
1286
|
isEqual,
|
|
1287
|
+
isFuture,
|
|
1288
|
+
isPast,
|
|
1268
1289
|
iso8601,
|
|
1269
1290
|
minuteEnd,
|
|
1270
1291
|
minuteStart,
|
|
@@ -1280,6 +1301,7 @@ function diffYears(dateA, dateB) {
|
|
|
1280
1301
|
removeOffset,
|
|
1281
1302
|
sameDay,
|
|
1282
1303
|
sameHour,
|
|
1304
|
+
sameMillisecond,
|
|
1283
1305
|
sameMinute,
|
|
1284
1306
|
sameSecond,
|
|
1285
1307
|
sameYear,
|