nhb-toolbox 3.6.0 → 3.6.2
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/date/Chronos.d.ts +42 -14
- package/dist/date/Chronos.d.ts.map +1 -1
- package/dist/date/Chronos.js +74 -48
- package/package.json +1 -1
package/dist/date/Chronos.d.ts
CHANGED
|
@@ -107,32 +107,60 @@ export declare class Chronos {
|
|
|
107
107
|
* @returns The difference as string, e.g., `2 years 1 month 9 days 18 hours 56 minutes 9 seconds ago`.
|
|
108
108
|
*/
|
|
109
109
|
fromNow(time?: string | number | Date | Chronos): string;
|
|
110
|
-
/**
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
/**
|
|
111
|
+
* * Returns the number of full years between the input date and now.
|
|
112
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
113
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
114
|
+
*/
|
|
115
|
+
getRelativeYear(time?: string | number | Date | Chronos): number;
|
|
116
|
+
/**
|
|
117
|
+
* * Returns the number of full months between the input date and now.
|
|
118
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
119
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
120
|
+
*/
|
|
121
|
+
getRelativeMonth(time?: string | number | Date | Chronos): number;
|
|
114
122
|
/**
|
|
115
123
|
* * Determines if the given date is today, tomorrow, yesterday or any relative day.
|
|
116
124
|
* @param date - The date to compare (Date object).
|
|
125
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
117
126
|
* @returns
|
|
118
127
|
* - `-1` if the date is yesterday.
|
|
119
128
|
* - `0` if the date is today.
|
|
120
129
|
* - `1` if the date is tomorrow.
|
|
121
130
|
* - Other positive or negative numbers for other relative days (e.g., `-2` for two days ago, `2` for two days ahead).
|
|
122
131
|
*/
|
|
123
|
-
getRelativeDay(): number;
|
|
124
|
-
/**
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
|
|
132
|
+
getRelativeDay(time?: string | number | Date | Chronos): number;
|
|
133
|
+
/**
|
|
134
|
+
* * Returns the number of full hours between the input date and now.
|
|
135
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
136
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
137
|
+
*/
|
|
138
|
+
getRelativeHour(time?: string | number | Date | Chronos): number;
|
|
139
|
+
/**
|
|
140
|
+
* * Returns the number of full minutes between the input date and now.
|
|
141
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
142
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
143
|
+
*/
|
|
144
|
+
getRelativeMinute(time?: string | number | Date | Chronos): number;
|
|
145
|
+
/**
|
|
146
|
+
* * Returns the number of full seconds between the input date and now.
|
|
147
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
148
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
149
|
+
*/
|
|
150
|
+
getRelativeSecond(time?: string | number | Date | Chronos): number;
|
|
151
|
+
/**
|
|
152
|
+
* * Returns the number of milliseconds between the input date and now.
|
|
153
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
154
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
155
|
+
*/
|
|
156
|
+
getRelativeMilliSecond(time?: string | number | Date | Chronos): number;
|
|
132
157
|
/**
|
|
133
158
|
* * Compares the stored date with now, returning the difference in the specified unit.
|
|
159
|
+
*
|
|
134
160
|
* @param unit The time unit to compare by. Defaults to 'minute'.
|
|
161
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
162
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
135
163
|
*/
|
|
136
|
-
compare(unit?: TimeUnit): number;
|
|
164
|
+
compare(unit?: TimeUnit, time?: string | number | Date | Chronos): number;
|
|
137
165
|
}
|
|
138
166
|
//# sourceMappingURL=Chronos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chronos.d.ts","sourceRoot":"","sources":["../../src/date/Chronos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,SAAS,CAAC;AAGjB,qBAAa,OAAO;;IAInB;;;;;;;;OAQG;gBACS,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"Chronos.d.ts","sourceRoot":"","sources":["../../src/date/Chronos.ts"],"names":[],"mappings":"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"}
|
package/dist/date/Chronos.js
CHANGED
|
@@ -14,13 +14,7 @@ export class Chronos {
|
|
|
14
14
|
* - If a Chronos object is provided, it will be converted to a Date object.
|
|
15
15
|
*/
|
|
16
16
|
constructor(value) {
|
|
17
|
-
const date = value
|
|
18
|
-
value.toDate()
|
|
19
|
-
: new Date(value ?? Date.now());
|
|
20
|
-
// Check if the date is invalid
|
|
21
|
-
if (isNaN(date.getTime())) {
|
|
22
|
-
throw new Error('Provided date is invalid!');
|
|
23
|
-
}
|
|
17
|
+
const date = this.#toNewDate(value);
|
|
24
18
|
this.#date = date;
|
|
25
19
|
// this.preview = this.toISOString();
|
|
26
20
|
}
|
|
@@ -99,6 +93,16 @@ export class Chronos {
|
|
|
99
93
|
static now() {
|
|
100
94
|
return Date.now();
|
|
101
95
|
}
|
|
96
|
+
#toNewDate(value) {
|
|
97
|
+
const date = value instanceof Chronos ?
|
|
98
|
+
value.toDate()
|
|
99
|
+
: new Date(value ?? Date.now());
|
|
100
|
+
// Check if the date is invalid
|
|
101
|
+
if (isNaN(date.getTime())) {
|
|
102
|
+
throw new Error('Provided date is invalid!');
|
|
103
|
+
}
|
|
104
|
+
return date;
|
|
105
|
+
}
|
|
102
106
|
/**
|
|
103
107
|
* @private Formats the current `Chronos` date using the specified template.
|
|
104
108
|
*
|
|
@@ -255,13 +259,7 @@ export class Chronos {
|
|
|
255
259
|
* @returns The difference as string, e.g., `2 years 1 month 9 days 18 hours 56 minutes 9 seconds ago`.
|
|
256
260
|
*/
|
|
257
261
|
fromNow(time) {
|
|
258
|
-
const now = time
|
|
259
|
-
time.toDate()
|
|
260
|
-
: new Date(time ?? Date.now());
|
|
261
|
-
// Check if the date is invalid
|
|
262
|
-
if (isNaN(now.getTime())) {
|
|
263
|
-
throw new Error('Provided date is invalid!');
|
|
264
|
-
}
|
|
262
|
+
const now = this.#toNewDate(time);
|
|
265
263
|
const target = this.#date;
|
|
266
264
|
const isFuture = target > now;
|
|
267
265
|
const from = isFuture ? now : target;
|
|
@@ -309,23 +307,31 @@ export class Chronos {
|
|
|
309
307
|
parts.push(`${seconds} second${seconds !== 1 ? 's' : ''}`);
|
|
310
308
|
return `${isFuture ? 'in ' : ''}${parts.join(' ')}${isFuture ? '' : ' ago'}`;
|
|
311
309
|
}
|
|
312
|
-
/**
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
310
|
+
/**
|
|
311
|
+
* * Returns the number of full years between the input date and now.
|
|
312
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
313
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
314
|
+
*/
|
|
315
|
+
getRelativeYear(time) {
|
|
316
|
+
const now = this.#toNewDate(time);
|
|
317
|
+
let years = this.#date.getFullYear() - now.getFullYear();
|
|
318
|
+
const noYearMonthDay = now.getMonth() < this.#date.getMonth() ||
|
|
317
319
|
(now.getMonth() === this.#date.getMonth() &&
|
|
318
320
|
now.getDate() < this.#date.getDate());
|
|
319
|
-
if (
|
|
321
|
+
if (noYearMonthDay) {
|
|
320
322
|
years--;
|
|
321
323
|
}
|
|
322
324
|
return years;
|
|
323
325
|
}
|
|
324
|
-
/**
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
326
|
+
/**
|
|
327
|
+
* * Returns the number of full months between the input date and now.
|
|
328
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
329
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
330
|
+
*/
|
|
331
|
+
getRelativeMonth(time) {
|
|
332
|
+
const now = this.#toNewDate(time);
|
|
333
|
+
let months = (this.#date.getFullYear() - now.getFullYear()) * 12 +
|
|
334
|
+
(this.#date.getMonth() - now.getMonth());
|
|
329
335
|
const hasNotHadMonthDay = now.getDate() < this.#date.getDate();
|
|
330
336
|
if (hasNotHadMonthDay) {
|
|
331
337
|
months--;
|
|
@@ -335,62 +341,82 @@ export class Chronos {
|
|
|
335
341
|
/**
|
|
336
342
|
* * Determines if the given date is today, tomorrow, yesterday or any relative day.
|
|
337
343
|
* @param date - The date to compare (Date object).
|
|
344
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
338
345
|
* @returns
|
|
339
346
|
* - `-1` if the date is yesterday.
|
|
340
347
|
* - `0` if the date is today.
|
|
341
348
|
* - `1` if the date is tomorrow.
|
|
342
349
|
* - Other positive or negative numbers for other relative days (e.g., `-2` for two days ago, `2` for two days ahead).
|
|
343
350
|
*/
|
|
344
|
-
getRelativeDay() {
|
|
345
|
-
const today =
|
|
351
|
+
getRelativeDay(time) {
|
|
352
|
+
const today = this.#toNewDate(time);
|
|
346
353
|
// Set the time of today to 00:00:00 for comparison purposes
|
|
347
354
|
today.setHours(0, 0, 0, 0);
|
|
348
355
|
// Normalize the input date to 00:00:00
|
|
349
|
-
const inputDate =
|
|
356
|
+
const inputDate = this.#date;
|
|
350
357
|
inputDate.setHours(0, 0, 0, 0);
|
|
351
358
|
const diffTime = inputDate.getTime() - today.getTime();
|
|
352
359
|
const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24));
|
|
353
360
|
return diffDays;
|
|
354
361
|
}
|
|
355
|
-
/**
|
|
356
|
-
|
|
357
|
-
|
|
362
|
+
/**
|
|
363
|
+
* * Returns the number of full hours between the input date and now.
|
|
364
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
365
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
366
|
+
*/
|
|
367
|
+
getRelativeHour(time) {
|
|
368
|
+
const diff = this.#date.getTime() - this.#toNewDate(time).getTime();
|
|
358
369
|
return Math.floor(diff / (1000 * 60 * 60));
|
|
359
370
|
}
|
|
360
|
-
/**
|
|
361
|
-
|
|
362
|
-
|
|
371
|
+
/**
|
|
372
|
+
* * Returns the number of full minutes between the input date and now.
|
|
373
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
374
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
375
|
+
*/
|
|
376
|
+
getRelativeMinute(time) {
|
|
377
|
+
const diff = this.#date.getTime() - this.#toNewDate(time).getTime();
|
|
363
378
|
return Math.floor(diff / (1000 * 60));
|
|
364
379
|
}
|
|
365
|
-
/**
|
|
366
|
-
|
|
367
|
-
|
|
380
|
+
/**
|
|
381
|
+
* * Returns the number of full seconds between the input date and now.
|
|
382
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
383
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
384
|
+
*/
|
|
385
|
+
getRelativeSecond(time) {
|
|
386
|
+
const diff = this.#date.getTime() - this.#toNewDate(time).getTime();
|
|
368
387
|
return Math.floor(diff / 1000);
|
|
369
388
|
}
|
|
370
|
-
/**
|
|
371
|
-
|
|
372
|
-
|
|
389
|
+
/**
|
|
390
|
+
* * Returns the number of milliseconds between the input date and now.
|
|
391
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
392
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
393
|
+
*/
|
|
394
|
+
getRelativeMilliSecond(time) {
|
|
395
|
+
return this.#date.getTime() - this.#toNewDate(time).getTime();
|
|
373
396
|
}
|
|
374
397
|
/**
|
|
375
398
|
* * Compares the stored date with now, returning the difference in the specified unit.
|
|
399
|
+
*
|
|
376
400
|
* @param unit The time unit to compare by. Defaults to 'minute'.
|
|
401
|
+
* @param time Optional time to compare with the `Chronos` date/time.
|
|
402
|
+
* @returns The difference in number, negative is `Chronos` time is a past time else positive.
|
|
377
403
|
*/
|
|
378
|
-
compare(unit = 'minute') {
|
|
404
|
+
compare(unit = 'minute', time) {
|
|
379
405
|
switch (unit) {
|
|
380
406
|
case 'year':
|
|
381
|
-
return this.getRelativeYear();
|
|
407
|
+
return this.getRelativeYear(time);
|
|
382
408
|
case 'month':
|
|
383
|
-
return this.getRelativeMonth();
|
|
409
|
+
return this.getRelativeMonth(time);
|
|
384
410
|
case 'day':
|
|
385
|
-
return this.getRelativeDay();
|
|
411
|
+
return this.getRelativeDay(time);
|
|
386
412
|
case 'hour':
|
|
387
|
-
return this.getRelativeHour();
|
|
413
|
+
return this.getRelativeHour(time);
|
|
388
414
|
case 'minute':
|
|
389
|
-
return this.getRelativeMinute();
|
|
415
|
+
return this.getRelativeMinute(time);
|
|
390
416
|
case 'second':
|
|
391
|
-
return this.getRelativeSecond();
|
|
417
|
+
return this.getRelativeSecond(time);
|
|
392
418
|
case 'millisecond':
|
|
393
|
-
return this.getRelativeMilliSecond();
|
|
419
|
+
return this.getRelativeMilliSecond(time);
|
|
394
420
|
default:
|
|
395
421
|
throw new Error(`Unsupported time unit: ${unit}`);
|
|
396
422
|
}
|
package/package.json
CHANGED