i18n-js
Version:
A small library to provide I18n on JavaScript.
31 lines • 1.21 kB
JavaScript
export function parseDate(input) {
if (input instanceof Date) {
return input;
}
if (typeof input === "number") {
const date = new Date();
date.setTime(input);
return date;
}
const matches = new String(input).match(/(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2}):(\d{2})(?:[.,](\d{1,3}))?)?(Z|\+00:?00)?/);
if (matches) {
const parts = matches.slice(1, 8).map((match) => parseInt(match, 10) || 0);
parts[1] -= 1;
const [year, month, day, hour, minute, second, milliseconds] = parts;
const timezone = matches[8];
if (timezone) {
return new Date(Date.UTC(year, month, day, hour, minute, second, milliseconds));
}
else {
return new Date(year, month, day, hour, minute, second, milliseconds);
}
}
if (input.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\d+) (\d+:\d+:\d+) ([+-]\d+) (\d+)/)) {
const date = new Date();
date.setTime(Date.parse([RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5].join(" ")));
}
const date = new Date();
date.setTime(Date.parse(input));
return date;
}
//# sourceMappingURL=parseDate.js.map