UNPKG

@paroicms/server

Version:
67 lines 2.58 kB
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