@davidwells/parse-time
v1.0.0
Published
Parse messy time strings into JavaScript Date objects
Downloads
6
Maintainers
Readme
@davidwells/parse-time
Parse messy time strings into JavaScript Date objects.
Installation
npm install @davidwells/parse-timeUsage
const { parseTime } = require('@davidwells/parse-time');
// Parse specific dates and times
const date1 = parseTime('January 15th 2024 at 3:30pm');
console.log(date1.toISOString()); // 2024-01-15T15:30:00.000Z
// Parse relative times
const now = new Date('2023-01-01T12:00:00Z');
const date2 = parseTime('in 2 hours', { now });
console.log(date2.toISOString()); // 2023-01-01T14:00:00.000Z
// Parse special keywords
const date3 = parseTime('today at 5pm', { now });
console.log(date3.toISOString()); // 2023-01-01T17:00:00.000Z
// Parse "never" (returns far future date)
const never = parseTime('never');
console.log(never.toISOString()); // 9999-12-31T00:00:00.000Z
// Parse "now" (returns current time)
const currentTime = parseTime('now');
console.log(currentTime.toISOString()); // Current time in ISO format
// Parse unix timestamp
const timestamp = 1672574400; // 2023-01-01T12:00:00Z
const date4 = parseTime(timestamp);
console.log(date4.toISOString()); // 2023-01-01T12:00:00.000Z
// Parse Date object
const dateObj = new Date('2023-05-15T10:30:00Z');
const date5 = parseTime(dateObj);
console.log(date5.toISOString()); // 2023-05-15T10:30:00.000ZSupported Formats
The library supports a wide variety of time formats:
- Specific dates and times:
January 15th 2024 at 3:30pm,Dec 25 2023 midnight,July 4 2023 noon - Relative times:
in 2 hours,3 days ago,next week,next month - Special keywords:
today at 5pm,yesterday noon,tomorrow at midnight - Time of day:
11am,11pm,12:30am,12:30pm - Days of the week:
this friday,next monday,last tuesday - Specific dates:
oct 22nd 1987,3pm oct 22nd 1987,the 22nd of october, 1987 at 7pm - Holidays:
4th of july,9pm on the 4th of july - Relative periods:
in 12 minutes,in 2 hours,in 31 hours,in 20 hours 40 minutes - Decimal periods:
in 20.2h,in 1.5 weeks - Longer periods:
in 5 weeks,in 2 years,in 2 years and 5 weeks - Past periods:
2 days ago,2 days and 6 hours ago,1 month ago,14 days ago - ISO format:
2015-10-31,2015-10-31 20:30,2015-10-31 8:30pm
Options
The parseTime function accepts an options object as its second parameter:
const options = {
now: new Date() // Reference date for relative time calculations
}
const date = parseTime('tomorrow at noon', options)About
Fork of https://github.com/substack/parse-messy-time/blob/master/index.js
License
MIT
