client: date formatter utility: add the ability to format exclusively dates or times

This commit is contained in:
Adorian Doran 2024-12-10 18:09:55 +02:00
parent 88376e1158
commit 1268916ad7

View File

@ -1,14 +1,22 @@
/**
* Formats the given date to a string based on the current locale.
* @param {Date | number} date
* @param {"full" | "long" | "medium" | "short" | undefined} dateStyle
* @param {"full" | "long" | "medium" | "short" | undefined} tiemStyle
* @param {"full" | "long" | "medium" | "short" | "none" | undefined} dateStyle
* @param {"full" | "long" | "medium" | "short" | "none" | undefined} tiemStyle
*/
export function formatDate(date, dateStyle = "medium", tiemStyle = "medium") {
const formatter = new Intl.DateTimeFormat(navigator.language, {
dateStyle: "medium",
timeStyle: "medium"
});
export function formatDate(date, dateStyle = "medium", timeStyle = "medium") {
const locale = navigator.language;
if (timeStyle === "none") {
// Format only the date
return date.toLocaleDateString(locale, {dateStyle});
} else if (dateStyle === "none") {
// Format only the time
return date.toLocaleTimeString(locale, {timeStyle});
} else {
// Format the date and time
const formatter = new Intl.DateTimeFormat(navigator.language, {dateStyle, timeStyle});
return formatter.format(date);
}
}
return formatter.format(date);
}