@formkit/tempo 0.0.19 → 0.1.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 +9 -0
- package/dist/addDay.mjs +11 -0
- package/dist/addDay.mjs.map +1 -0
- package/dist/addHour.d.ts +9 -0
- package/dist/addHour.mjs +11 -0
- package/dist/addHour.mjs.map +1 -0
- package/dist/addMinute.d.ts +9 -0
- package/dist/addMinute.mjs +11 -0
- package/dist/addMinute.mjs.map +1 -0
- package/dist/addMonth.d.ts +13 -0
- package/dist/addMonth.mjs +19 -0
- package/dist/addMonth.mjs.map +1 -0
- package/dist/addSecond.d.ts +9 -0
- package/dist/addSecond.mjs +11 -0
- package/dist/addSecond.mjs.map +1 -0
- package/dist/addYear.d.ts +13 -0
- package/dist/addYear.mjs +19 -0
- package/dist/addYear.mjs.map +1 -0
- package/dist/ap.d.ts +8 -0
- package/dist/ap.mjs +28 -0
- package/dist/ap.mjs.map +1 -0
- package/dist/applyOffset.d.ts +11 -0
- package/dist/applyOffset.mjs +20 -0
- package/dist/applyOffset.mjs.map +1 -0
- package/dist/bundle.mjs +1215 -0
- package/dist/bundle.mjs.map +1 -0
- package/dist/common.d.ts +137 -0
- package/dist/common.mjs +252 -0
- package/dist/common.mjs.map +1 -0
- package/dist/date.d.ts +9 -0
- package/dist/date.mjs +28 -0
- package/dist/date.mjs.map +1 -0
- package/dist/dayEnd.d.ts +9 -0
- package/dist/dayEnd.mjs +11 -0
- package/dist/dayEnd.mjs.map +1 -0
- package/dist/dayOfYear.d.ts +10 -0
- package/dist/dayOfYear.mjs +12 -0
- package/dist/dayOfYear.mjs.map +1 -0
- package/dist/dayStart.d.ts +9 -0
- package/dist/dayStart.mjs +11 -0
- package/dist/dayStart.mjs.map +1 -0
- package/dist/deviceLocale.d.ts +7 -0
- package/dist/deviceLocale.mjs +8 -0
- package/dist/deviceLocale.mjs.map +1 -0
- package/dist/deviceTZ.d.ts +8 -0
- package/dist/deviceTZ.mjs +8 -0
- package/dist/deviceTZ.mjs.map +1 -0
- package/dist/diffDays.d.ts +12 -0
- package/dist/diffDays.mjs +14 -0
- package/dist/diffDays.mjs.map +1 -0
- package/dist/diffHours.d.ts +12 -0
- package/dist/diffHours.mjs +14 -0
- package/dist/diffHours.mjs.map +1 -0
- package/dist/diffMilliseconds.d.ts +10 -0
- package/dist/diffMilliseconds.mjs +11 -0
- package/dist/diffMilliseconds.mjs.map +1 -0
- package/dist/diffMinutes.d.ts +11 -0
- package/dist/diffMinutes.mjs +10 -0
- package/dist/diffMinutes.mjs.map +1 -0
- package/dist/diffMonths.d.ts +10 -0
- package/dist/diffMonths.mjs +25 -0
- package/dist/diffMonths.mjs.map +1 -0
- package/dist/diffRound.d.ts +9 -0
- package/dist/diffRound.mjs +9 -0
- package/dist/diffRound.mjs.map +1 -0
- package/dist/diffSeconds.d.ts +12 -0
- package/dist/diffSeconds.mjs +10 -0
- package/dist/diffSeconds.mjs.map +1 -0
- package/dist/diffWeeks.d.ts +12 -0
- package/dist/diffWeeks.mjs +14 -0
- package/dist/diffWeeks.mjs.map +1 -0
- package/dist/diffYears.d.ts +10 -0
- package/dist/diffYears.mjs +10 -0
- package/dist/diffYears.mjs.map +1 -0
- package/dist/format.d.ts +36 -0
- package/dist/format.mjs +48 -0
- package/dist/format.mjs.map +1 -0
- package/dist/formatStr.d.ts +13 -0
- package/dist/formatStr.mjs +13 -0
- package/dist/formatStr.mjs.map +1 -0
- package/dist/fourDigitYear.d.ts +10 -0
- package/dist/fourDigitYear.mjs +12 -0
- package/dist/fourDigitYear.mjs.map +1 -0
- package/dist/hourEnd.d.ts +9 -0
- package/dist/hourEnd.mjs +11 -0
- package/dist/hourEnd.mjs.map +1 -0
- package/dist/hourStart.d.ts +9 -0
- package/dist/hourStart.mjs +11 -0
- package/dist/hourStart.mjs.map +1 -0
- package/dist/index.cjs +139 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +75 -4
- package/dist/index.d.ts +54 -498
- package/dist/index.mjs +62 -1057
- package/dist/index.mjs.map +1 -1
- package/dist/isAfter.d.ts +18 -0
- package/dist/isAfter.mjs +11 -0
- package/dist/isAfter.mjs.map +1 -0
- package/dist/isBefore.d.ts +13 -0
- package/dist/isBefore.mjs +11 -0
- package/dist/isBefore.mjs.map +1 -0
- package/dist/isEqual.d.ts +13 -0
- package/dist/isEqual.mjs +11 -0
- package/dist/isEqual.mjs.map +1 -0
- package/dist/iso8601.d.ts +13 -0
- package/dist/iso8601.mjs +27 -0
- package/dist/iso8601.mjs.map +1 -0
- package/dist/minuteEnd.d.ts +9 -0
- package/dist/minuteEnd.mjs +11 -0
- package/dist/minuteEnd.mjs.map +1 -0
- package/dist/minuteStart.d.ts +9 -0
- package/dist/minuteStart.mjs +11 -0
- package/dist/minuteStart.mjs.map +1 -0
- package/dist/monthDays.d.ts +9 -0
- package/dist/monthDays.mjs +10 -0
- package/dist/monthDays.mjs.map +1 -0
- package/dist/monthEnd.d.ts +10 -0
- package/dist/monthEnd.mjs +13 -0
- package/dist/monthEnd.mjs.map +1 -0
- package/dist/monthStart.d.ts +9 -0
- package/dist/monthStart.mjs +12 -0
- package/dist/monthStart.mjs.map +1 -0
- package/dist/nearestDay.d.ts +12 -0
- package/dist/nearestDay.mjs +46 -0
- package/dist/nearestDay.mjs.map +1 -0
- package/dist/offset.d.ts +14 -0
- package/dist/offset.mjs +36 -0
- package/dist/offset.mjs.map +1 -0
- package/dist/parse.d.ts +13 -0
- package/dist/parse.mjs +163 -0
- package/dist/parse.mjs.map +1 -0
- package/dist/parts.d.ts +12 -0
- package/dist/parts.mjs +214 -0
- package/dist/parts.mjs.map +1 -0
- package/dist/range.d.ts +10 -0
- package/dist/range.mjs +50 -0
- package/dist/range.mjs.map +1 -0
- package/dist/removeOffset.d.ts +10 -0
- package/dist/removeOffset.mjs +13 -0
- package/dist/removeOffset.mjs.map +1 -0
- package/dist/sameDay.d.ts +10 -0
- package/dist/sameDay.mjs +11 -0
- package/dist/sameDay.mjs.map +1 -0
- package/dist/sameHour.d.ts +10 -0
- package/dist/sameHour.mjs +11 -0
- package/dist/sameHour.mjs.map +1 -0
- package/dist/sameMinute.d.ts +10 -0
- package/dist/sameMinute.mjs +11 -0
- package/dist/sameMinute.mjs.map +1 -0
- package/dist/sameSecond.d.ts +10 -0
- package/dist/sameSecond.mjs +11 -0
- package/dist/sameSecond.mjs.map +1 -0
- package/dist/sameYear.d.ts +10 -0
- package/dist/sameYear.mjs +11 -0
- package/dist/sameYear.mjs.map +1 -0
- package/dist/types.d.ts +143 -0
- package/dist/types.mjs +1 -0
- package/dist/types.mjs.map +1 -0
- package/dist/tzDate.d.ts +15 -0
- package/dist/tzDate.mjs +12 -0
- package/dist/tzDate.mjs.map +1 -0
- package/dist/weekEnd.d.ts +12 -0
- package/dist/weekEnd.mjs +12 -0
- package/dist/weekEnd.mjs.map +1 -0
- package/dist/weekStart.d.ts +12 -0
- package/dist/weekStart.mjs +15 -0
- package/dist/weekStart.mjs.map +1 -0
- package/dist/yearDays.d.ts +9 -0
- package/dist/yearDays.mjs +10 -0
- package/dist/yearDays.mjs.map +1 -0
- package/dist/yearEnd.d.ts +9 -0
- package/dist/yearEnd.mjs +13 -0
- package/dist/yearEnd.mjs.map +1 -0
- package/dist/yearStart.d.ts +9 -0
- package/dist/yearStart.mjs +13 -0
- package/dist/yearStart.mjs.map +1 -0
- package/package.json +8 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// src/formatStr.ts
|
|
2
|
+
import { parts } from "./parts.mjs";
|
|
3
|
+
import { escapeTokens } from "./common.mjs";
|
|
4
|
+
function formatStr(format, locale = "en", escapeLiterals = false, filterParts = () => true) {
|
|
5
|
+
return parts(format, locale).filter(filterParts).reduce(
|
|
6
|
+
(f, p) => f += escapeLiterals && p.partName === "literal" ? escapeTokens(p.token) : p.token,
|
|
7
|
+
""
|
|
8
|
+
).normalize("NFKC");
|
|
9
|
+
}
|
|
10
|
+
export {
|
|
11
|
+
formatStr
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=formatStr.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/formatStr.ts"],"sourcesContent":["import { parts } from \"./parts\"\nimport { escapeTokens } from \"./common\"\nimport type { Format, Part } from \"./types\"\n\n/**\n * Return the string format for a given format. For example:\n * ```js\n * formatStr({ date: 'long' }, 'en') // dddd, MMMM D, YYYY\n * ```\n * @param format - A format string or object.\n * @param locale - A locale or en by default.\n */\nexport function formatStr(\n format: Format,\n locale = \"en\",\n escapeLiterals = false,\n filterParts: (part: Part) => boolean = () => true\n): string {\n return parts(format, locale)\n .filter(filterParts)\n .reduce(\n (f, p) =>\n (f +=\n escapeLiterals && p.partName === \"literal\"\n ? escapeTokens(p.token)\n : p.token),\n \"\"\n )\n .normalize(\"NFKC\")\n}\n"],"mappings":";AAAA,SAAS,aAAa;AACtB,SAAS,oBAAoB;AAWtB,SAAS,UACd,QACA,SAAS,MACT,iBAAiB,OACjB,cAAuC,MAAM,MACrC;AACR,SAAO,MAAM,QAAQ,MAAM,EACxB,OAAO,WAAW,EAClB;AAAA,IACC,CAAC,GAAG,MACD,KACC,kBAAkB,EAAE,aAAa,YAC7B,aAAa,EAAE,KAAK,IACpB,EAAE;AAAA,IACV;AAAA,EACF,EACC,UAAU,MAAM;AACrB;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a 2 digit year into a 4 digit year. This function assumes years 20
|
|
3
|
+
* years into the future belong to the current century, and the past 80 are in
|
|
4
|
+
* the past.
|
|
5
|
+
*
|
|
6
|
+
* @param value - 2 digits in string format
|
|
7
|
+
*/
|
|
8
|
+
declare function fourDigitYear(value: string): number;
|
|
9
|
+
|
|
10
|
+
export { fourDigitYear };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// src/fourDigitYear.ts
|
|
2
|
+
function fourDigitYear(value) {
|
|
3
|
+
const y = (/* @__PURE__ */ new Date()).getFullYear();
|
|
4
|
+
const currentYear = y % 100;
|
|
5
|
+
const century = Math.floor(y / 100);
|
|
6
|
+
const parsedYear = Number(value);
|
|
7
|
+
return (century + (parsedYear > currentYear + 20 ? -1 : 0)) * 100 + parsedYear;
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
fourDigitYear
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=fourDigitYear.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/fourDigitYear.ts"],"sourcesContent":["/**\n * Converts a 2 digit year into a 4 digit year. This function assumes years 20\n * years into the future belong to the current century, and the past 80 are in\n * the past.\n *\n * @param value - 2 digits in string format\n */\nexport function fourDigitYear(value: string): number {\n const y = new Date().getFullYear()\n const currentYear = y % 100\n const century = Math.floor(y / 100)\n const parsedYear = Number(value)\n return (century + (parsedYear > currentYear + 20 ? -1 : 0)) * 100 + parsedYear\n}\n"],"mappings":";AAOO,SAAS,cAAc,OAAuB;AACnD,QAAM,KAAI,oBAAI,KAAK,GAAE,YAAY;AACjC,QAAM,cAAc,IAAI;AACxB,QAAM,UAAU,KAAK,MAAM,IAAI,GAAG;AAClC,QAAM,aAAa,OAAO,KAAK;AAC/B,UAAQ,WAAW,aAAa,cAAc,KAAK,KAAK,MAAM,MAAM;AACtE;","names":[]}
|
package/dist/hourEnd.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hourEnd.ts"],"sourcesContent":["import { date } from \"./date\"\nimport type { DateInput } from \"./types\"\n\n/**\n * Returns a Date object for end of the given hour.\n * @param inputDate - A string or Date object\n */\nexport function hourEnd(inputDate: DateInput): Date {\n const d = date(inputDate)\n d.setMinutes(59, 59, 999)\n return d\n}\n"],"mappings":";AAAA,SAAS,YAAY;AAOd,SAAS,QAAQ,WAA4B;AAClD,QAAM,IAAI,KAAK,SAAS;AACxB,IAAE,WAAW,IAAI,IAAI,GAAG;AACxB,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hourStart.ts"],"sourcesContent":["import { date } from \"./date\"\nimport type { DateInput } from \"./types\"\n\n/**\n * Returns a Date object for start of the given hour.\n * @param inputDate - A string or Date object\n */\nexport function hourStart(inputDate: DateInput): Date {\n const d = date(inputDate)\n d.setMinutes(0, 0)\n return d\n}\n"],"mappings":";AAAA,SAAS,YAAY;AAOd,SAAS,UAAU,WAA4B;AACpD,QAAM,IAAI,KAAK,SAAS;AACxB,IAAE,WAAW,GAAG,CAAC;AACjB,SAAO;AACT;","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -32,6 +32,14 @@ __export(src_exports, {
|
|
|
32
32
|
dayEnd: () => dayEnd,
|
|
33
33
|
dayOfYear: () => dayOfYear,
|
|
34
34
|
dayStart: () => dayStart,
|
|
35
|
+
diffDays: () => diffDays,
|
|
36
|
+
diffHours: () => diffHours,
|
|
37
|
+
diffMilliseconds: () => diffMilliseconds,
|
|
38
|
+
diffMinutes: () => diffMinutes,
|
|
39
|
+
diffMonths: () => diffMonths,
|
|
40
|
+
diffSeconds: () => diffSeconds,
|
|
41
|
+
diffWeeks: () => diffWeeks,
|
|
42
|
+
diffYears: () => diffYears,
|
|
35
43
|
format: () => format,
|
|
36
44
|
formatStr: () => formatStr,
|
|
37
45
|
fourDigitYear: () => fourDigitYear,
|
|
@@ -204,6 +212,7 @@ var clockAgnostic = [
|
|
|
204
212
|
["m", { minute: "numeric" }],
|
|
205
213
|
["ss", { second: "2-digit" }],
|
|
206
214
|
["s", { second: "numeric" }],
|
|
215
|
+
["ZZ", { timeZoneName: "long" }],
|
|
207
216
|
["Z", { timeZoneName: "short" }]
|
|
208
217
|
];
|
|
209
218
|
var clock24 = [
|
|
@@ -274,7 +283,7 @@ function fill(inputDate, parts2, locale, genitive = false, offset2 = null) {
|
|
|
274
283
|
return token === "A" ? p.toUpperCase() : p.toLowerCase();
|
|
275
284
|
}
|
|
276
285
|
if (partName === "timeZoneName") {
|
|
277
|
-
return offset2 != null ? offset2 : minsToOffset(-1 * d.getTimezoneOffset());
|
|
286
|
+
return offset2 != null ? offset2 : minsToOffset(-1 * d.getTimezoneOffset(), token);
|
|
278
287
|
}
|
|
279
288
|
return value2;
|
|
280
289
|
}
|
|
@@ -345,23 +354,35 @@ function createPartMap(inputDate, parts2, locale, genitive = false) {
|
|
|
345
354
|
return map;
|
|
346
355
|
}, {});
|
|
347
356
|
}
|
|
348
|
-
function minsToOffset(timeDiffInMins) {
|
|
357
|
+
function minsToOffset(timeDiffInMins, token = "Z") {
|
|
349
358
|
const hours = String(Math.floor(Math.abs(timeDiffInMins / 60))).padStart(
|
|
350
359
|
2,
|
|
351
360
|
"0"
|
|
352
361
|
);
|
|
353
362
|
const mins = String(Math.abs(timeDiffInMins % 60)).padStart(2, "0");
|
|
354
363
|
const sign = timeDiffInMins < 0 ? "-" : "+";
|
|
355
|
-
|
|
364
|
+
if (token === "ZZ") {
|
|
365
|
+
return `${sign}${hours}${mins}`;
|
|
366
|
+
}
|
|
367
|
+
return `${sign}${hours}:${mins}`;
|
|
356
368
|
}
|
|
357
|
-
function offsetToMins(offset2) {
|
|
358
|
-
validOffset(offset2);
|
|
359
|
-
const [_, sign, hours, mins] = offset2.match(
|
|
369
|
+
function offsetToMins(offset2, token) {
|
|
370
|
+
validOffset(offset2, token);
|
|
371
|
+
const [_, sign, hours, mins] = offset2.match(
|
|
372
|
+
/([+-])([0-3][0-9]):?([0-6][0-9])/
|
|
373
|
+
);
|
|
360
374
|
const offsetInMins = Number(hours) * 60 + Number(mins);
|
|
361
375
|
return sign === "+" ? offsetInMins : -offsetInMins;
|
|
362
376
|
}
|
|
363
|
-
function validOffset(offset2) {
|
|
364
|
-
const valid =
|
|
377
|
+
function validOffset(offset2, token = "Z") {
|
|
378
|
+
const valid = ((token2) => {
|
|
379
|
+
switch (token2) {
|
|
380
|
+
case "Z":
|
|
381
|
+
return /^([+-])[0-3][0-9]:[0-6][0-9]$/.test(offset2);
|
|
382
|
+
case "ZZ":
|
|
383
|
+
return /^([+-])[0-3][0-9][0-6][0-9]$/.test(offset2);
|
|
384
|
+
}
|
|
385
|
+
})(token);
|
|
365
386
|
if (!valid)
|
|
366
387
|
throw new Error(`Invalid offset: ${offset2}`);
|
|
367
388
|
return offset2;
|
|
@@ -391,6 +412,12 @@ function validate(parts2) {
|
|
|
391
412
|
}
|
|
392
413
|
return parts2;
|
|
393
414
|
}
|
|
415
|
+
function getOffsetFormat(format2) {
|
|
416
|
+
if (typeof format2 === "string") {
|
|
417
|
+
return format2.includes("ZZ") ? "ZZ" : "Z";
|
|
418
|
+
}
|
|
419
|
+
return "time" in format2 && format2.time === "full" ? "Z" : "ZZ";
|
|
420
|
+
}
|
|
394
421
|
|
|
395
422
|
// src/ap.ts
|
|
396
423
|
function ap(ampm, locale) {
|
|
@@ -417,9 +444,17 @@ function ap(ampm, locale) {
|
|
|
417
444
|
}
|
|
418
445
|
|
|
419
446
|
// src/applyOffset.ts
|
|
420
|
-
function applyOffset(dateInput, offset2 = "+
|
|
447
|
+
function applyOffset(dateInput, offset2 = "+00:00") {
|
|
421
448
|
const d = date(dateInput);
|
|
422
|
-
const
|
|
449
|
+
const token = (() => {
|
|
450
|
+
switch (fixedLengthByOffset(offset2)) {
|
|
451
|
+
case 5:
|
|
452
|
+
return "ZZ";
|
|
453
|
+
case 6:
|
|
454
|
+
return "Z";
|
|
455
|
+
}
|
|
456
|
+
})();
|
|
457
|
+
const timeDiffInMins = offsetToMins(offset2, token);
|
|
423
458
|
return new Date(d.getTime() + timeDiffInMins * 1e3 * 60);
|
|
424
459
|
}
|
|
425
460
|
|
|
@@ -448,14 +483,14 @@ function relativeTime(d, timeZone) {
|
|
|
448
483
|
`${parts2.year}-${parts2.month}-${parts2.day}T${parts2.hour}:${parts2.minute}:${parts2.second}Z`
|
|
449
484
|
);
|
|
450
485
|
}
|
|
451
|
-
function offset(utcTime, tzA = "UTC", tzB = "device") {
|
|
486
|
+
function offset(utcTime, tzA = "UTC", tzB = "device", timeZoneToken = "Z") {
|
|
452
487
|
var _a;
|
|
453
488
|
tzB = tzB === "device" ? (_a = deviceTZ()) != null ? _a : "utc" : tzB;
|
|
454
489
|
const d = date(utcTime);
|
|
455
490
|
const timeA = relativeTime(d, tzA);
|
|
456
491
|
const timeB = relativeTime(d, tzB);
|
|
457
492
|
const timeDiffInMins = (timeB.getTime() - timeA.getTime()) / 1e3 / 60;
|
|
458
|
-
return minsToOffset(timeDiffInMins);
|
|
493
|
+
return minsToOffset(timeDiffInMins, timeZoneToken);
|
|
459
494
|
}
|
|
460
495
|
|
|
461
496
|
// src/tzDate.ts
|
|
@@ -572,7 +607,8 @@ function styleParts(format2, locale) {
|
|
|
572
607
|
part.type,
|
|
573
608
|
part.value,
|
|
574
609
|
locale,
|
|
575
|
-
part.type === "hour" ? hourType : void 0
|
|
610
|
+
part.type === "hour" ? hourType : void 0,
|
|
611
|
+
options
|
|
576
612
|
);
|
|
577
613
|
if (formatPattern === void 0)
|
|
578
614
|
return;
|
|
@@ -591,7 +627,7 @@ function styleParts(format2, locale) {
|
|
|
591
627
|
};
|
|
592
628
|
}).filter((part) => !!part);
|
|
593
629
|
}
|
|
594
|
-
function guessPattern(partName, partValue, locale, hour) {
|
|
630
|
+
function guessPattern(partName, partValue, locale, hour, options) {
|
|
595
631
|
const l = partValue.length;
|
|
596
632
|
const n = !isNaN(Number(partValue));
|
|
597
633
|
let style;
|
|
@@ -633,8 +669,7 @@ function guessPattern(partName, partValue, locale, hour) {
|
|
|
633
669
|
case "literal":
|
|
634
670
|
return [partValue, { literal: partValue }, new RegExp("")];
|
|
635
671
|
case "timeZoneName":
|
|
636
|
-
|
|
637
|
-
return offset2.length === 2 && offset2[1].length === 4 ? tokens.get("ZZ") : tokens.get("Z");
|
|
672
|
+
return options.timeStyle === "full" ? tokens.get("Z") : tokens.get("ZZ");
|
|
638
673
|
default:
|
|
639
674
|
return void 0;
|
|
640
675
|
}
|
|
@@ -688,7 +723,7 @@ function partStyle(locale, part, value) {
|
|
|
688
723
|
}
|
|
689
724
|
|
|
690
725
|
// src/removeOffset.ts
|
|
691
|
-
function removeOffset(dateInput, offset2 = "+
|
|
726
|
+
function removeOffset(dateInput, offset2 = "+00:00") {
|
|
692
727
|
const positive = offset2.slice(0, 1) === "+";
|
|
693
728
|
return applyOffset(
|
|
694
729
|
dateInput,
|
|
@@ -718,7 +753,7 @@ function format(inputDateOrOptions, format2 = "long", locale = "device", genitiv
|
|
|
718
753
|
if (format2 === "ISO8601")
|
|
719
754
|
return date(inputDateOrOptions).toISOString();
|
|
720
755
|
if (tz) {
|
|
721
|
-
forceOffset = offset(inputDateOrOptions, "utc", tz);
|
|
756
|
+
forceOffset = offset(inputDateOrOptions, "utc", tz, getOffsetFormat(format2));
|
|
722
757
|
}
|
|
723
758
|
tz != null ? tz : tz = deviceTZ();
|
|
724
759
|
if ((tz == null ? void 0 : tz.toLowerCase()) !== "utc") {
|
|
@@ -950,8 +985,8 @@ function parse(dateStrOrOptions, format2 = "ISO8601", locale = "device") {
|
|
|
950
985
|
parsed.set("MM", v);
|
|
951
986
|
} else if (t === "a" || t === "A") {
|
|
952
987
|
a = part.value.toLowerCase() === ap("am", locale).toLowerCase();
|
|
953
|
-
} else if (t === "Z") {
|
|
954
|
-
offset2 = validOffset(part.value);
|
|
988
|
+
} else if (t === "Z" || t === "ZZ") {
|
|
989
|
+
offset2 = validOffset(part.value, t);
|
|
955
990
|
} else {
|
|
956
991
|
const values = range(t, locale, genitive);
|
|
957
992
|
const index = values.indexOf(part.value);
|
|
@@ -1124,6 +1159,82 @@ function isEqual(dateLeft, dateRight) {
|
|
|
1124
1159
|
const _dateRight = date(dateRight);
|
|
1125
1160
|
return +_dateLeft === +_dateRight;
|
|
1126
1161
|
}
|
|
1162
|
+
|
|
1163
|
+
// src/diffMilliseconds.ts
|
|
1164
|
+
function diffMilliseconds(dateA, dateB) {
|
|
1165
|
+
const left = date(dateA);
|
|
1166
|
+
const right = date(dateB);
|
|
1167
|
+
return +left - +right;
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
// src/diffRound.ts
|
|
1171
|
+
function diffRound(value, method = "trunc") {
|
|
1172
|
+
const r = Math[method](value);
|
|
1173
|
+
return r == 0 ? 0 : r;
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
// src/diffSeconds.ts
|
|
1177
|
+
function diffSeconds(dateA, dateB, roundingMethod) {
|
|
1178
|
+
return diffRound(diffMilliseconds(dateA, dateB) / 1e3, roundingMethod);
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
// src/diffMinutes.ts
|
|
1182
|
+
function diffMinutes(dateA, dateB, roundingMethod) {
|
|
1183
|
+
return diffRound(diffMilliseconds(dateA, dateB) / 6e4, roundingMethod);
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
// src/diffHours.ts
|
|
1187
|
+
function diffHours(dateA, dateB, roundingMethod) {
|
|
1188
|
+
return diffRound(
|
|
1189
|
+
diffMilliseconds(dateA, dateB) / 36e5,
|
|
1190
|
+
// 1000 * 60 * 60
|
|
1191
|
+
roundingMethod
|
|
1192
|
+
);
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
// src/diffDays.ts
|
|
1196
|
+
function diffDays(dateA, dateB, roundingMethod) {
|
|
1197
|
+
return diffRound(
|
|
1198
|
+
diffMilliseconds(dateA, dateB) / 864e5,
|
|
1199
|
+
// hour * 24
|
|
1200
|
+
roundingMethod
|
|
1201
|
+
);
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
// src/diffWeeks.ts
|
|
1205
|
+
function diffWeeks(dateA, dateB, roundingMethod) {
|
|
1206
|
+
return diffRound(
|
|
1207
|
+
diffMilliseconds(dateA, dateB) / 6048e5,
|
|
1208
|
+
// day * 7
|
|
1209
|
+
roundingMethod
|
|
1210
|
+
);
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
// src/diffMonths.ts
|
|
1214
|
+
function diffMonths(dateA, dateB) {
|
|
1215
|
+
const l = date(dateA);
|
|
1216
|
+
const r = date(dateB);
|
|
1217
|
+
if (l < r) {
|
|
1218
|
+
const rs = diffMonths(r, l);
|
|
1219
|
+
return rs == 0 ? 0 : -rs;
|
|
1220
|
+
}
|
|
1221
|
+
let months = (l.getFullYear() - r.getFullYear()) * 12 + (l.getMonth() - r.getMonth());
|
|
1222
|
+
const ld = l.getDate();
|
|
1223
|
+
const rd = r.getDate();
|
|
1224
|
+
if (ld < rd) {
|
|
1225
|
+
const lm = monthDays(l);
|
|
1226
|
+
if (!(lm == ld && lm < rd)) {
|
|
1227
|
+
months--;
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
return months == 0 ? 0 : months;
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
// src/diffYears.ts
|
|
1234
|
+
function diffYears(dateA, dateB) {
|
|
1235
|
+
const r = Math.trunc(diffMonths(dateA, dateB) / 12);
|
|
1236
|
+
return r == 0 ? 0 : r;
|
|
1237
|
+
}
|
|
1127
1238
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1128
1239
|
0 && (module.exports = {
|
|
1129
1240
|
addDay,
|
|
@@ -1138,6 +1249,14 @@ function isEqual(dateLeft, dateRight) {
|
|
|
1138
1249
|
dayEnd,
|
|
1139
1250
|
dayOfYear,
|
|
1140
1251
|
dayStart,
|
|
1252
|
+
diffDays,
|
|
1253
|
+
diffHours,
|
|
1254
|
+
diffMilliseconds,
|
|
1255
|
+
diffMinutes,
|
|
1256
|
+
diffMonths,
|
|
1257
|
+
diffSeconds,
|
|
1258
|
+
diffWeeks,
|
|
1259
|
+
diffYears,
|
|
1141
1260
|
format,
|
|
1142
1261
|
formatStr,
|
|
1143
1262
|
fourDigitYear,
|