@paroicms/server
Version:
The ParoiCMS server
67 lines • 2.58 kB
JavaScript
import { format, parseISO } from "date-fns";
import { de, enUS, es, fr, it, pt } from "date-fns/locale";
const locales = { de, en: enUS, es, fr, it, pt };
export function formatDate(date, language, formatType = "short") {
const dateObj = typeof date === "string" ? parseISO(date) : new Date(date);
const locale = locales[language] || locales.en;
let formattedDate;
if (formatType === "long") {
if (language === "fr") {
formattedDate = format(dateObj, "d MMMM yyyy", { locale });
}
else if (language === "de") {
formattedDate = format(dateObj, "d. MMMM yyyy", { locale });
}
else if (language === "es") {
formattedDate = format(dateObj, "d 'de' MMMM 'de' yyyy", { locale });
}
else if (language === "it") {
formattedDate = format(dateObj, "d MMMM yyyy", { locale });
}
else if (language === "pt") {
formattedDate = format(dateObj, "d 'de' MMMM 'de' yyyy", { locale });
}
else {
formattedDate = format(dateObj, "MMMM d, yyyy", { locale });
}
}
else if (formatType === "long2") {
if (language === "fr") {
formattedDate = format(dateObj, "EEEE d MMMM yyyy", { locale });
}
else if (language === "de") {
formattedDate = format(dateObj, "EEEE, d. MMMM yyyy", { locale });
}
else if (language === "es") {
formattedDate = format(dateObj, "EEEE, d 'de' MMMM 'de' yyyy", { locale });
}
else if (language === "it") {
formattedDate = format(dateObj, "EEEE, d MMMM yyyy", { locale });
}
else if (language === "pt") {
formattedDate = format(dateObj, "EEEE, d 'de' MMMM 'de' yyyy", { locale });
}
else {
formattedDate = format(dateObj, "EEEE, MMMM d, yyyy", { locale });
}
}
else if (formatType === "short") {
if (language === "fr" || language === "it") {
formattedDate = format(dateObj, "d/M/yyyy", { locale });
}
else if (language === "de") {
formattedDate = format(dateObj, "d.M.yyyy", { locale });
}
else if (language === "es" || language === "pt") {
formattedDate = format(dateObj, "d/M/yyyy", { locale });
}
else {
formattedDate = format(dateObj, "M/d/yy", { locale });
}
}
else {
throw new Error("unknown format");
}
return formattedDate;
}
//# sourceMappingURL=format-date.helper.js.map