Growing
Last updated:
Temporal API: JavaScript’s New Time Machine
A modern approach to handling dates and times in JavaScript
Key Features
- Immutable Objects: All Temporal objects are immutable, preventing accidental modifications
- Better Timezone Handling: Built-in support for timezone operations
- ISO 8601 Compliance: Strict adherence to international standards
- Type Safety: Clear separation between different types of temporal data
- Human-Readable API: More intuitive method names and operations
Core Types
Temporal.PlainDate: Represents a calendar dateTemporal.PlainTime: Represents a wall-clock timeTemporal.PlainDateTime: Combines date and timeTemporal.Instant: Represents a point in timeTemporal.ZonedDateTime: Date and time with timezoneTemporal.Duration: Represents a length of time
Common Use Cases
- Date arithmetic without timezone headaches
- Formatting dates for different locales
- Calculating durations between dates
- Working with timezones in a predictable way
- Parsing and validating date strings
Polyfill Options
For browsers that don’t support Temporal yet, you can use:
@js-temporal/polyfilltemporal-polyfill
Example Usage
// Creating a date
const date = Temporal.PlainDate.from('2024-03-15');
// Adding days
const nextWeek = date.add({ days: 7 });
// Formatting
const formatted = date.toLocaleString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric'
});
Best Practices
- Use Temporal for all new date/time operations
- Convert legacy Date objects to Temporal early in your code
- Leverage the built-in timezone support
- Use the appropriate Temporal type for your use case
- Take advantage of the immutable nature for safer code
Browser Support
Fully supported
Chrome 144
Edge 144
Firefox 139
Safari preview
You might also like...