Skip to content
This repository has been archived by the owner on Mar 20, 2024. It is now read-only.
/ meridiem Public archive

Natural language date parser (in the past)

License

Notifications You must be signed in to change notification settings

metrik-tech/meridiem

Repository files navigation

!! ARCHIVED !!

Use vercel/ms instead

⏰ meridiem

Meridiem is a simple, lightweight and fast library written in TypeScript for parsing natural language time ranges (in the past) and converting them to a simple object. Powered by some simple RegEx patterns and the built-in new Date() parser. Inspired by chrono and this tweet from @JohnPhamous about the new Vercel date range selector.

Has troubles with very large time ranges. Will work best if kept within 2-3 years of provided currentDate or the current date.

Compatible with Node, the browser, Deno and Bun. Only dependency is date-fns.

Installation

# npm
npm install @metrik/meridiem
 
# yarn
yarn add @metrik/meridiem

# pnpm
pnpm add @metrik/meridiem

Usage

import { parse } from "@metrik/meridiem"

// You can pass a string to parse
const basicResult = parse("last week")

// {
//   start: 2023-03-10T00:00:00.000Z,
//   end: 2023-03-17T00:00:00.000Z
// }

// You can also pass a date to parse relative to
const relativeResult = parse("last week", new Date("January 1, 2023"))

// {
//   start: 2023-12-25T00:00:00.000Z,
//   end: 2023-01-01T00:00:00.000Z
// }

// Meridiem can also do real date ranges
const realResult = parse("1/1 - 1/2")

// {
//   start: 2023-01-01T00:00:00.000Z,
//   end: 2023-01-02T00:00:00.000Z
// }

// If the date range is invalid, null is returned
const invalidResult = parse("invalid date range") // null

About

Natural language date parser (in the past)

Resources

License

Stars

Watchers

Forks

Packages

No packages published