UNPKG

luxon-parser

Version:

Add DateTime.fromHuman() and DateTime.fromAny() functions to Luxon that can parse a wide range of date formats including human-input dates

31 lines (30 loc) 904 B
// src/luxon-parser.ts import { fromString } from "any-date-parser"; import { DateTime } from "luxon"; function dateTimeFromHuman(string, options = {}) { const date = fromString(string, options.locale); if (date.invalid) { return DateTime.invalid(date.invalid); } return DateTime.fromJSDate(date, options); } function dateTimeFromAny(date, options = {}) { if (!date) { return DateTime.now(); } else if (date instanceof DateTime) { return date; } else if (date instanceof Date) { return DateTime.fromJSDate(date, options); } else if (typeof date === "number") { return DateTime.fromMillis(date, options); } else if (typeof date === "object") { return DateTime.fromObject(date, options); } return dateTimeFromHuman(date, options); } DateTime.fromHuman = dateTimeFromHuman; DateTime.fromAny = dateTimeFromAny; export { dateTimeFromAny, dateTimeFromHuman };