luxon-parser
v1.0.0
Published
Add DateTime.fromHuman() and DateTime.fromAny() functions to Luxon that can parse a wide range of date formats including human-input dates
Downloads
939
Maintainers
Readme
luxon-parser
The most comprehensive and accurate date parser for Node and browsers. It uses
Intl
to provide parsing support for all installed locales. This plugin
connects the capabilities of
any-date-parser to
luxon.
It allows parsing every imaginable date format to a Luxon DateTime
object.
Most locales are supported automatically.
Table of Contents
Motivation
- The APIs I consume have a lot of different date formats
- I want to create REST APIs that accept all major formats
- I want to handle user-input dates
- I want to support dates in other languages according to JavaScript's new
Intl
global object
Installation
npm install luxon luxon-parser
Usage
Option 1: import functions (recommended)
import { dateTimeFromHuman, dateTimeFromAny } from 'luxon-parser';
const date1 = dateTimeFromHuman('March 5th, 2016 at 7:05pm');
const date2 = dateTimeFromHuman('9 days ago');
const date3 = dateTimeFromHuman('2016-03-05 23:59:59 CST');
const date4 = dateTimeFromAny(new Date());
Option 2: use new functions on DateTime
object
import { DateTime } from 'luxon';
import 'luxon-parser';
const date1 = DateTime.fromHuman('March 5th, 2016 at 7:05pm');
const date2 = DateTime.fromHuman('9 days ago');
const date3 = DateTime.fromHuman('2016-03-05 23:59:59 CST');
const date4 = DateTime.fromAny(new Date());
dateTimeFromHuman(string, options) : DateTime
Create a DateTime
from any given string.
dateTimeFromAny(any, options) : DateTime
Create a DateTime
from string, milliseconds, object, DateTime
, or Date
.
Locale Support
Locales are supported through a second argument:
import { dateTimeFromHuman, dateTimeFromAny } from 'luxon-parser';
const date1 = dateTimeFromHuman('15 septembre 2015', { locale: 'fr' });
const date2 = dateTimeFromAny('15 septembre 2015', { locale: 'fr' });
See the Luxon docs on locales and the example non-English dates that any-date-parser can parse.
Sister Packages
- Standalone Parser: any-date-parser
- DayJS Parser: dayjs-parser
- Moment Parser: moment-parseplus
Unit Testing
luxon-parser
has 100% code coverage.
- To run tests, run
npm test
- To check coverage, run
npm run coverage
Unit tests require a global install of full-icu
and luxon
. The test runner
will attempt to install these if absent. It tests compatibility with Luxon
version 1.x, 2.x and 3.x
Contributing
Contributions are welcome. Please open a GitHub ticket for bugs or feature requests. Please make a pull request for any fixes or new code you'd like to be incorporated.