Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| /** | |
| * Formats a Date object into a human-readable string. | |
| * @param date The Date object to format. | |
| * @param locale The locale to use for formatting (e.g., 'en-US', 'fr-FR'). Defaults to the system's locale. | |
| * @param options Optional formatting options for toLocaleDateString. | |
| * @returns The formatted date string. | |
| */ | |
| export function formatDate(date: Date, locale?: string, options?: Intl.DateTimeFormatOptions): string { | |
| // Provide a default locale and options if not provided | |
| const effectiveLocale = locale || undefined; // Using undefined will use the system's locale | |
| const effectiveOptions: Intl.DateTimeFormatOptions = options || { | |
| year: "numeric", | |
| month: "long", | |
| day: "numeric", | |
| }; | |
| try { | |
| return date.toLocaleDateString(effectiveLocale, effectiveOptions); | |
| } catch (error) { | |
| console.error("Error formatting date:", error); | |
| // Fallback to a simple format if toLocaleDateString fails | |
| return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")}`; | |
| } | |
| } | |
| /** | |
| * Formats a Date object into a human-readable string including both date and time. | |
| * @param date The Date object to format. | |
| * @param locale The locale to use for formatting (e.g., 'en-US', 'fr-FR'). Defaults to the system's locale. | |
| * @param options Optional formatting options for toLocaleString. | |
| * @returns The formatted date and time string. | |
| */ | |
| export function formatDateTime(date: Date, locale?: string, options?: Intl.DateTimeFormatOptions): string { | |
| // Provide a default locale and options if not provided | |
| const effectiveLocale = locale || undefined; // Using undefined will use the system's locale | |
| const effectiveOptions: Intl.DateTimeFormatOptions = options || { | |
| year: "numeric", | |
| month: "long", | |
| day: "numeric", | |
| hour: "numeric", | |
| minute: "numeric", | |
| second: "numeric", | |
| // timeZoneName: "short", // Optionally include the time zone name | |
| }; | |
| try { | |
| return date.toLocaleString(effectiveLocale, effectiveOptions); | |
| } catch (error) { | |
| console.error("Error formatting date and time:", error); | |
| // Fallback to a simple format if toLocaleString fails | |
| return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, "0")}-${date.getDate().toString().padStart(2, "0")} ${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}:${date.getSeconds().toString().padStart(2, "0")}`; | |
| } | |
| } | |