@intlayer/core
Version:
Includes core Intlayer functions like translation, dictionary, and utility functions shared across multiple packages.
62 lines (60 loc) • 1.68 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
const require_utils_intl = require('../utils/intl.cjs');
let _intlayer_config_built = require("@intlayer/config/built");
//#region src/formatters/date.ts
const presets = {
short: {
year: "2-digit",
month: "2-digit",
day: "2-digit",
hour: "2-digit",
minute: "2-digit"
},
long: {
year: "numeric",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric"
},
full: {
year: "numeric",
month: "long",
day: "numeric",
hour: "numeric",
minute: "numeric",
hour12: false
},
dateOnly: {
year: "numeric",
month: "short",
day: "numeric"
},
timeOnly: {
hour: "numeric",
minute: "numeric",
second: "numeric"
}
};
/**
* Formats a date/time value into a localized string using Intl.DateTimeFormat.
*
* @example
* date(new Date('2025-08-02T14:30:00Z'), { year: '2-digit', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' });
* // "08/02/25, 14:30"
*
* @example
* date("2025-08-02T14:30:00Z", { locale: Locales.FRENCH, month: "long", day: "numeric" });
* // "2 août"
*/
const date = (date, options) => {
const dateTime = new Date(date);
const resolvedOptions = typeof options === "string" ? presets[options] ?? {} : options;
const locale = (typeof options === "object" ? options?.locale : void 0) ?? _intlayer_config_built.internationalization?.defaultLocale;
return require_utils_intl.getCachedIntl(Intl.DateTimeFormat, locale, resolvedOptions).format(dateTime);
};
//#endregion
exports.date = date;
exports.presets = presets;
//# sourceMappingURL=date.cjs.map