@parsify/date
Version:
Parsify plugin for date & time parsing
19 lines (18 loc) • 698 B
JavaScript
import { parseDate } from 'chrono-node';
import { lightFormat } from 'date-fns';
export default ({ format, locale = 'en-US' } = {}) => async (expression) => {
const result = parseDate(expression);
if (!result) {
return expression;
}
// Fallback to default format
try {
if (format) {
return lightFormat(result, format);
}
return new Date(result).toLocaleString(locale, { day: 'numeric', month: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric' });
}
catch {
return new Date(result).toLocaleString(locale, { day: 'numeric', month: 'numeric', year: 'numeric', hour: 'numeric', minute: 'numeric' });
}
};