@nivinjoseph/n-date 1.0.1
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/.editorconfig +14 -0
- package/.vscode/launch.json +56 -0
- package/.vscode/settings.json +111 -0
- package/.vscode/tasks.json +12 -0
- package/.yarn/releases/yarn-4.14.1.cjs +940 -0
- package/.yarnrc.yml +8 -0
- package/LICENSE +21 -0
- package/README.md +21 -0
- package/dist/date-time-format.d.ts +11 -0
- package/dist/date-time-format.d.ts.map +1 -0
- package/dist/date-time-format.js +11 -0
- package/dist/date-time-format.js.map +1 -0
- package/dist/date-time-span.d.ts +70 -0
- package/dist/date-time-span.d.ts.map +1 -0
- package/dist/date-time-span.js +122 -0
- package/dist/date-time-span.js.map +1 -0
- package/dist/date-time.d.ts +391 -0
- package/dist/date-time.d.ts.map +1 -0
- package/dist/date-time.js +753 -0
- package/dist/date-time.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.json +13 -0
- package/docs/README.md +33 -0
- package/docs/date-time-span.md +72 -0
- package/docs/date-time.md +169 -0
- package/docs/formats.md +56 -0
- package/docs/getting-started.md +151 -0
- package/eslint.config.js +596 -0
- package/package.json +57 -0
- package/src/date-time-format.ts +35 -0
- package/src/date-time-span.ts +130 -0
- package/src/date-time.ts +950 -0
- package/src/index.ts +3 -0
- package/test/date-time-comparison.test.ts +1579 -0
- package/test/date-time-create.test.ts +1147 -0
- package/test/date-time-math.test.ts +324 -0
- package/test/date-time-properties.test.ts +200 -0
- package/test/date-time-utility.test.ts +432 -0
- package/test/date-time-validations.test.ts +521 -0
- package/tsconfig.json +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time.js","sourceRoot":"","sources":["../src/date-time.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAqB,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,YAAY,EAAsB,MAAM,qBAAqB,CAAC"}
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# n-date Documentation
|
|
2
|
+
|
|
3
|
+
`@nivinjoseph/n-date` is a TypeScript library for robust date and time handling with first-class timezone support. It wraps [Luxon](https://moment.github.io/luxon/) behind an immutable, serializable API.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
- [Getting Started](./getting-started.md) — installation, concepts, and a quick tour.
|
|
8
|
+
- [DateTime](./date-time.md) — the core immutable date/time type.
|
|
9
|
+
- [DateTimeSpan](./date-time-span.md) — intervals between two `DateTime` values.
|
|
10
|
+
- [Formats](./formats.md) — `DateTimeFormat` and `DateTimeFormatExt` reference.
|
|
11
|
+
|
|
12
|
+
## At a glance
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { DateTime, DateTimeSpan, DateTimeFormat } from "@nivinjoseph/n-date";
|
|
16
|
+
import { Duration } from "@nivinjoseph/n-util";
|
|
17
|
+
|
|
18
|
+
const now = DateTime.now("America/New_York");
|
|
19
|
+
const later = now.addTime(Duration.fromHours(2));
|
|
20
|
+
|
|
21
|
+
const span = new DateTimeSpan({ start: now, end: later });
|
|
22
|
+
span.contains(now.addTime(Duration.fromMinutes(30))); // true
|
|
23
|
+
|
|
24
|
+
later.format(DateTimeFormat.yearMonthDay); // "2026-04-20"
|
|
25
|
+
later.formatExt("DDDD"); // "Monday, April 20, 2026"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Design principles
|
|
29
|
+
|
|
30
|
+
- **Immutable** — every mutating-looking method (`addTime`, `convertToZone`, …) returns a new `DateTime`.
|
|
31
|
+
- **Explicit timezones** — there is no "local" zone; callers pass an IANA zone or `"utc"`.
|
|
32
|
+
- **Serializable** — `DateTime` and `DateTimeSpan` extend `Serializable` from `@nivinjoseph/n-util`, so they round-trip through JSON with their type tag preserved.
|
|
33
|
+
- **Defensive** — inputs are validated with `@nivinjoseph/n-defensive`; invalid values throw at construction time rather than silently producing bad dates.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# DateTimeSpan
|
|
2
|
+
|
|
3
|
+
A closed interval `[start, end]` between two `DateTime` values. Source: [src/date-time-span.ts](../src/date-time-span.ts).
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import { DateTimeSpan, DateTimeSpanSchema } from "@nivinjoseph/n-date";
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Construction
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
type DateTimeSpanSchema = { start: DateTime; end: DateTime; };
|
|
13
|
+
|
|
14
|
+
const span = new DateTimeSpan({ start, end });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Throws if `end.isBefore(start)`. A zero-length span (`start === end`) is allowed.
|
|
18
|
+
|
|
19
|
+
## Properties
|
|
20
|
+
|
|
21
|
+
| Property | Type | Description |
|
|
22
|
+
| --- | --- | --- |
|
|
23
|
+
| `start` | `DateTime` | Inclusive lower bound. |
|
|
24
|
+
| `end` | `DateTime` | Inclusive upper bound. |
|
|
25
|
+
| `duration` | `Duration` | `end.timeDiff(start)` (from `@nivinjoseph/n-util`). |
|
|
26
|
+
|
|
27
|
+
## Methods
|
|
28
|
+
|
|
29
|
+
### `contains(dateTime: DateTime): boolean`
|
|
30
|
+
|
|
31
|
+
True if `dateTime` falls within `[start, end]` (inclusive on both ends).
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
this: start ─────────────── end
|
|
35
|
+
↑
|
|
36
|
+
dateTime
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### `encompasses(other: DateTimeSpan): boolean`
|
|
40
|
+
|
|
41
|
+
True if this span fully contains `other` — i.e. `this.start <= other.start` **and** `this.end >= other.end`.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
this: start ─────────────────────── end
|
|
45
|
+
other: start ─── end
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### `infringes(other: DateTimeSpan): boolean`
|
|
49
|
+
|
|
50
|
+
True if the two spans overlap in any way — mutual containment, or partial overlap at either end. Returns false only when the spans are completely disjoint.
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
partial overlap — this starts inside other:
|
|
54
|
+
this: start ─────── end
|
|
55
|
+
other: start ─────── end
|
|
56
|
+
|
|
57
|
+
partial overlap — this ends inside other:
|
|
58
|
+
this: start ─────── end
|
|
59
|
+
other: start ─────── end
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### `equals(other: DateTimeSpan | null): boolean`
|
|
63
|
+
|
|
64
|
+
Structural equality — both `start` and `end` must `equals` their counterparts (value **and** zone).
|
|
65
|
+
|
|
66
|
+
## Serialization
|
|
67
|
+
|
|
68
|
+
`DateTimeSpan` extends `Serializable` and is registered under the same `"Ndate"` type tag as `DateTime`. It round-trips through `@nivinjoseph/n-util`'s serializer.
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
export type DateTimeSpanSchema = Schema<DateTimeSpan, "start" | "end">;
|
|
72
|
+
```
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# DateTime
|
|
2
|
+
|
|
3
|
+
An immutable, timezone-aware date/time value. Source: [src/date-time.ts](../src/date-time.ts).
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import { DateTime, DateTimeSchema } from "@nivinjoseph/n-date";
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Construction
|
|
10
|
+
|
|
11
|
+
### `new DateTime(data: DateTimeSchema)`
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
type DateTimeSchema = { value: string; zone: string; };
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- `value` — a string matching `yyyy-MM-dd HH:mm:ss`. Shorter forms (`yyyy`, `yyyy-MM`, `yyyy-MM-dd`, `yyyy-MM-dd HH`, `yyyy-MM-dd HH:mm`) are auto-padded with zeros.
|
|
18
|
+
- `zone` — `"utc"` or an IANA timezone id. `"local"` is rejected. `UTC±HH:MM` offsets are accepted within the valid range (`UTC-12:00` … `UTC+14:00`).
|
|
19
|
+
|
|
20
|
+
Throws if the format is wrong, if month/day/hour/minute/second are out of range, or if the zone is invalid.
|
|
21
|
+
|
|
22
|
+
### Static factories
|
|
23
|
+
|
|
24
|
+
| Method | Notes |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `DateTime.now(zone?)` | Current instant; defaults to `"utc"`. Honours `useFixedNow` / `useRelativeNow`. |
|
|
27
|
+
| `DateTime.createFromTimestamp(seconds, zone)` | Unix timestamp in **seconds**. |
|
|
28
|
+
| `DateTime.createFromMilliSecondsSinceEpoch(ms, zone)` | Unix timestamp in **milliseconds**. |
|
|
29
|
+
| `DateTime.createFromCodes(dateCode, timeCode, zone)` | `dateCode` is `YYYYMMDD`, `timeCode` is `HHMMSS`. |
|
|
30
|
+
| `DateTime.createFromValues(dateValue, timeValue, zone)` | `dateValue` is `YYYY-MM-DD`, `timeValue` is `HH:mm:ss`. |
|
|
31
|
+
|
|
32
|
+
### Min / max
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
DateTime.min(a, b); // earlier of the two
|
|
36
|
+
DateTime.max(a, b); // later of the two
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Properties
|
|
40
|
+
|
|
41
|
+
| Property | Type | Description |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| `value` | `string` | Canonical `yyyy-MM-dd HH:mm:ss`. |
|
|
44
|
+
| `zone` | `string` | Timezone identifier. |
|
|
45
|
+
| `timestamp` | `number` | Unix seconds. |
|
|
46
|
+
| `dateCode` | `string` | `YYYYMMDD`. |
|
|
47
|
+
| `timeCode` | `string` | `HHMMSS`. |
|
|
48
|
+
| `dateValue` | `string` | `YYYY-MM-DD`. |
|
|
49
|
+
| `timeValue` | `string` | `HH:mm:ss`. |
|
|
50
|
+
| `isPast` | `boolean` | Relative to `DateTime.now()`. |
|
|
51
|
+
| `isFuture` | `boolean` | Relative to `DateTime.now()`. |
|
|
52
|
+
| `DateTime.currentZone` | `string` | The host system's local zone (static). |
|
|
53
|
+
|
|
54
|
+
## Comparison
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
a.equals(b); // same value AND same zone
|
|
58
|
+
a.isSame(b); // same instant (zones may differ)
|
|
59
|
+
a.isBefore(b);
|
|
60
|
+
a.isSameOrBefore(b);
|
|
61
|
+
a.isAfter(b);
|
|
62
|
+
a.isSameOrAfter(b);
|
|
63
|
+
a.isBetween(start, end); // inclusive; throws if end < start
|
|
64
|
+
a.isSameDay(b);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`isSame` compares instants, so `"2026-04-20 12:00 utc"` and `"2026-04-20 08:00 America/New_York"` are the same. `equals` requires matching `value` **and** `zone`.
|
|
68
|
+
|
|
69
|
+
## Differences
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
a.timeDiff(b); // Duration (absolute)
|
|
73
|
+
a.daysDiff(b); // number (absolute, integer)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Arithmetic
|
|
77
|
+
|
|
78
|
+
All methods return a new `DateTime` in the same zone.
|
|
79
|
+
|
|
80
|
+
| Method | DST behaviour |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| `addTime(duration)` / `subtractTime(duration)` | Shifts by elapsed time — wall-clock time may jump across DST boundaries. |
|
|
83
|
+
| `addDays(n)` / `subtractDays(n)` | Shifts by calendar days — wall-clock time is preserved across DST. |
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
import { Duration } from "@nivinjoseph/n-util";
|
|
87
|
+
|
|
88
|
+
dt.addTime(Duration.fromHours(2));
|
|
89
|
+
dt.addDays(7);
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
`addDays` / `subtractDays` require a non-negative integer.
|
|
93
|
+
|
|
94
|
+
## Zone conversion
|
|
95
|
+
|
|
96
|
+
```typescript
|
|
97
|
+
const ny = DateTime.now("America/New_York");
|
|
98
|
+
const tokyo = ny.convertToZone("Asia/Tokyo");
|
|
99
|
+
// tokyo.timestamp === ny.timestamp
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Returns `this` unchanged when the target zone matches the current one.
|
|
103
|
+
|
|
104
|
+
## Formatting
|
|
105
|
+
|
|
106
|
+
### `toStringDateTime(): string`
|
|
107
|
+
|
|
108
|
+
Canonical `yyyy-MM-dd HH:mm:ss`.
|
|
109
|
+
|
|
110
|
+
### `toStringISO(): string`
|
|
111
|
+
|
|
112
|
+
Extended ISO-8601 with offset, e.g. `2026-04-20T11:30:45.000-04:00`.
|
|
113
|
+
|
|
114
|
+
### `toString(): string`
|
|
115
|
+
|
|
116
|
+
`"${value} ${zone}"`, e.g. `2026-04-20 11:30:45 America/New_York`.
|
|
117
|
+
|
|
118
|
+
### `format(format?: DateTimeFormat): string`
|
|
119
|
+
|
|
120
|
+
Truncates to the requested precision. See [formats](./formats.md).
|
|
121
|
+
|
|
122
|
+
### `formatExt(format: DateTimeFormatExt | string): string`
|
|
123
|
+
|
|
124
|
+
Full Luxon formatting — accepts any [Luxon format token string](https://moment.github.io/luxon/#/formatting?id=table-of-tokens). The `DateTimeFormatExt` union documents commonly used presets.
|
|
125
|
+
|
|
126
|
+
## Validation helpers (static)
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
DateTime.validateDateTimeFormat(value, format); // boolean
|
|
130
|
+
DateTime.validateDateFormat(value); // "yyyy-MM-dd"
|
|
131
|
+
DateTime.validateTimeFormat(value); // "HH:mm"
|
|
132
|
+
DateTime.validateTimeZone(zone); // boolean
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Test hooks (static)
|
|
136
|
+
|
|
137
|
+
Override the clock during tests. **Always reset in `afterEach` / teardown.**
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
DateTime.useFixedNow(timestampSeconds); // freeze now()
|
|
141
|
+
DateTime.useRelativeNow(timestampSeconds); // now() advances from this base
|
|
142
|
+
DateTime.resetFixedOrRelativeNow(); // back to real time
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`useFixedNow` and `useRelativeNow` are mutually exclusive — calling one clears the other.
|
|
146
|
+
|
|
147
|
+
## Iteration helpers
|
|
148
|
+
|
|
149
|
+
### `getDaysOfMonth(): Array<DateTime>`
|
|
150
|
+
|
|
151
|
+
Returns an array covering the current month. The first element is the start of the month at `00:00:00`, the last element is the end of the month at `23:59:59`, and the in-between elements are the start of each day.
|
|
152
|
+
|
|
153
|
+
## Time-of-day windows
|
|
154
|
+
|
|
155
|
+
### `isWithinTimeRange(startTimeCode, endTimeCode): boolean`
|
|
156
|
+
|
|
157
|
+
Checks whether this `DateTime` falls within `[startTimeCode, endTimeCode]` on its own date, in its own zone. Codes are `HHMMSS`. `endTimeCode` must be `>= startTimeCode` (same-day range; overnight windows are not supported by this method).
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
DateTime.now("America/Toronto").isWithinTimeRange("090000", "170000");
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Schema
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
export type DateTimeSchema = Schema<DateTime, "value" | "zone">;
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Used by the constructor and by the `@nivinjoseph/n-util` serializer (type tag `"Ndate"`).
|
package/docs/formats.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Formats
|
|
2
|
+
|
|
3
|
+
Format tokens follow [Luxon's grammar](https://moment.github.io/luxon/#/formatting?id=table-of-tokens). Source: [src/date-time-format.ts](../src/date-time-format.ts).
|
|
4
|
+
|
|
5
|
+
## `DateTimeFormat` (enum)
|
|
6
|
+
|
|
7
|
+
Used by [`DateTime#format`](./date-time.md#formatformat-datetimeformat-string) to truncate to a given precision.
|
|
8
|
+
|
|
9
|
+
| Member | Token | Example |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| `yearMonthDayHourMinuteSecond` | `yyyy-MM-dd HH:mm:ss` | `2026-04-20 15:30:45` |
|
|
12
|
+
| `yearMonthDayHourMinute` | `yyyy-MM-dd HH:mm` | `2026-04-20 15:30` |
|
|
13
|
+
| `yearMonthDayHour` | `yyyy-MM-dd HH` | `2026-04-20 15` |
|
|
14
|
+
| `yearMonthDay` | `yyyy-MM-dd` | `2026-04-20` |
|
|
15
|
+
| `yearMonth` | `yyyy-MM` | `2026-04` |
|
|
16
|
+
| `year` | `yyyy` | `2026` |
|
|
17
|
+
|
|
18
|
+
`DateTimeFormat_DEFAULT` is `yearMonthDayHourMinuteSecond` and is also the canonical internal representation.
|
|
19
|
+
|
|
20
|
+
## `DateTimeFormatExt` (type)
|
|
21
|
+
|
|
22
|
+
A union of commonly used Luxon format strings, passed to [`DateTime#formatExt`](./date-time.md#formatextformat-datetimeformatext--string-string). The type exists to give IntelliSense; `formatExt` also accepts any other Luxon format string.
|
|
23
|
+
|
|
24
|
+
| Token | Example |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `DD HH:mm:ss` | `Apr 20, 2026 15:30:20` |
|
|
27
|
+
| `MMMM d, HH:mm:ss` | `April 20 15:30:20` |
|
|
28
|
+
| `DD HH:mm` | `Apr 20, 2026 15:30` |
|
|
29
|
+
| `MMMM d, HH:mm` | `April 20 15:30` |
|
|
30
|
+
| `yyyy/LL/dd` | `2026/04/20` |
|
|
31
|
+
| `yyyy/LL/dd HH:mm:ss` | `2026/04/20 15:30:20` |
|
|
32
|
+
| `yyyy/LL/dd HH:mm` | `2026/04/20 15:30` |
|
|
33
|
+
| `yyyy-MM-dd` | `2026-04-20` |
|
|
34
|
+
| `HH:mm:ss` | `15:30:20` |
|
|
35
|
+
| `HH:mm` | `15:30` |
|
|
36
|
+
| `DDD` | `April 20, 2026` |
|
|
37
|
+
| `DD` | `Apr 20, 2026` |
|
|
38
|
+
| `yyyy-MM` | `2026-04` |
|
|
39
|
+
| `MMMM yyyy` | `April 2026` |
|
|
40
|
+
| `DDDD` | `Monday, April 20, 2026` |
|
|
41
|
+
| `EEEE DD` | `Monday Apr 20, 2026` |
|
|
42
|
+
| `LLL yyyy` | `Apr 2026` |
|
|
43
|
+
| `LLLL yyyy` | `April 2026` |
|
|
44
|
+
| `MMMM d` | `April 20` |
|
|
45
|
+
| `LLL d` | `Apr 20` |
|
|
46
|
+
|
|
47
|
+
## Validating format strings
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
DateTime.validateDateTimeFormat("2026-04-20 15:30:45", DateTimeFormat.yearMonthDayHourMinuteSecond); // true
|
|
51
|
+
DateTime.validateDateFormat("2026-04-20"); // true
|
|
52
|
+
DateTime.validateTimeFormat("15:30"); // true
|
|
53
|
+
DateTime.validateTimeZone("America/Toronto"); // true
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
All four return `false` (rather than throwing) on empty or malformed input, making them safe to use in form-validation pipelines.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Getting Started
|
|
2
|
+
|
|
3
|
+
## Installation
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npm install @nivinjoseph/n-date
|
|
7
|
+
# or
|
|
8
|
+
yarn add @nivinjoseph/n-date
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Peer-adjacent packages used in examples:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
yarn add @nivinjoseph/n-util
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The library targets Node.js `>= 24.10` and is published as pure ESM.
|
|
18
|
+
|
|
19
|
+
## Importing
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import {
|
|
23
|
+
DateTime,
|
|
24
|
+
DateTimeSchema,
|
|
25
|
+
DateTimeSpan,
|
|
26
|
+
DateTimeSpanSchema,
|
|
27
|
+
DateTimeFormat,
|
|
28
|
+
DateTimeFormat_DEFAULT,
|
|
29
|
+
DateTimeFormatExt
|
|
30
|
+
} from "@nivinjoseph/n-date";
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Core concepts
|
|
34
|
+
|
|
35
|
+
### A `DateTime` is a value + a zone
|
|
36
|
+
|
|
37
|
+
Every `DateTime` is constructed from two pieces of data:
|
|
38
|
+
|
|
39
|
+
- `value` — a string in the canonical format `yyyy-MM-dd HH:mm:ss`.
|
|
40
|
+
- `zone` — either `"utc"` or an IANA timezone identifier (e.g. `"America/New_York"`, `"Asia/Tokyo"`). `"local"` is explicitly disallowed so that serialized data is always unambiguous.
|
|
41
|
+
|
|
42
|
+
Shorter `value` strings are auto-padded on construction (`"2026"` → `"2026-01-01 00:00:00"`), so you can pass month-, day-, or hour-precision inputs directly.
|
|
43
|
+
|
|
44
|
+
### Immutability
|
|
45
|
+
|
|
46
|
+
`DateTime` and `DateTimeSpan` instances never mutate. Methods like `addTime`, `subtractDays`, and `convertToZone` return a new instance.
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
const a = DateTime.now("utc");
|
|
50
|
+
const b = a.addDays(1);
|
|
51
|
+
a.equals(b); // false — a is unchanged
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Serialization
|
|
55
|
+
|
|
56
|
+
Both types extend `Serializable` from `@nivinjoseph/n-util` and are registered under the type tag `"Ndate"`. `JSON.stringify` / `Deserializer.deserialize` round-trip them losslessly.
|
|
57
|
+
|
|
58
|
+
## Quick tour
|
|
59
|
+
|
|
60
|
+
### Create
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
DateTime.now("utc");
|
|
64
|
+
DateTime.now("America/Toronto");
|
|
65
|
+
|
|
66
|
+
DateTime.createFromTimestamp(1_700_000_000, "utc");
|
|
67
|
+
DateTime.createFromMilliSecondsSinceEpoch(Date.now(), "utc");
|
|
68
|
+
DateTime.createFromCodes("20260420", "153000", "utc");
|
|
69
|
+
DateTime.createFromValues("2026-04-20", "15:30:00", "utc");
|
|
70
|
+
|
|
71
|
+
new DateTime({ value: "2026-04-20 15:30:00", zone: "utc" });
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Inspect
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
const dt = DateTime.now("America/New_York");
|
|
78
|
+
|
|
79
|
+
dt.value; // "2026-04-20 11:30:45"
|
|
80
|
+
dt.zone; // "America/New_York"
|
|
81
|
+
dt.timestamp; // 1745163045 (seconds since epoch)
|
|
82
|
+
dt.dateCode; // "20260420"
|
|
83
|
+
dt.timeCode; // "113045"
|
|
84
|
+
dt.dateValue; // "2026-04-20"
|
|
85
|
+
dt.timeValue; // "11:30:45"
|
|
86
|
+
dt.isPast; // true
|
|
87
|
+
dt.isFuture; // false
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Compare
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
a.isSame(b);
|
|
94
|
+
a.isBefore(b);
|
|
95
|
+
a.isSameOrBefore(b);
|
|
96
|
+
a.isAfter(b);
|
|
97
|
+
a.isSameOrAfter(b);
|
|
98
|
+
a.isBetween(start, end);
|
|
99
|
+
a.isSameDay(b);
|
|
100
|
+
|
|
101
|
+
a.timeDiff(b); // Duration
|
|
102
|
+
a.daysDiff(b); // number
|
|
103
|
+
DateTime.min(a, b);
|
|
104
|
+
DateTime.max(a, b);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Arithmetic
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { Duration } from "@nivinjoseph/n-util";
|
|
111
|
+
|
|
112
|
+
dt.addTime(Duration.fromHours(3)); // DST-aware shift
|
|
113
|
+
dt.subtractTime(Duration.fromMinutes(15));
|
|
114
|
+
dt.addDays(7); // calendar day, DST-preserving
|
|
115
|
+
dt.subtractDays(1);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Format
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
dt.toStringDateTime(); // "2026-04-20 11:30:45"
|
|
122
|
+
dt.toStringISO(); // "2026-04-20T11:30:45.000-04:00"
|
|
123
|
+
dt.toString(); // "2026-04-20 11:30:45 America/New_York"
|
|
124
|
+
dt.format(DateTimeFormat.yearMonthDay); // "2026-04-20"
|
|
125
|
+
dt.formatExt("DDDD"); // "Monday, April 20, 2026"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Convert zones
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
const ny = DateTime.now("America/New_York");
|
|
132
|
+
const tokyo = ny.convertToZone("Asia/Tokyo");
|
|
133
|
+
|
|
134
|
+
ny.timestamp === tokyo.timestamp; // true — same instant, different wall clock
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Testing with fake time
|
|
138
|
+
|
|
139
|
+
For deterministic tests, freeze or relativize "now":
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
DateTime.useFixedNow(1_700_000_000);
|
|
143
|
+
DateTime.now("utc"); // always 2023-11-14 22:13:20
|
|
144
|
+
|
|
145
|
+
DateTime.useRelativeNow(1_700_000_000);
|
|
146
|
+
// DateTime.now() advances normally from this base.
|
|
147
|
+
|
|
148
|
+
DateTime.resetFixedOrRelativeNow();
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Always reset in an `afterEach` hook so leaked state does not affect later tests.
|