From 67967f00b51591bdd3ec35d40a9c7e3f92817886 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Thu, 17 Apr 2025 11:46:05 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(frontend)=20add=20date=20formatting?= =?UTF-8?q?=20utility=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Create reusable utility function to format dates into specified patterns. Provides consistent date formatting across the application. --- src/frontend/src/utils/formatDate.ts | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/frontend/src/utils/formatDate.ts diff --git a/src/frontend/src/utils/formatDate.ts b/src/frontend/src/utils/formatDate.ts new file mode 100644 index 00000000..19601219 --- /dev/null +++ b/src/frontend/src/utils/formatDate.ts @@ -0,0 +1,29 @@ +export function formatDate( + date: Date | string | number, + format: string = 'YYYY-MM-DD' +): string { + const dateObj = date instanceof Date ? date : new Date(date) + + if (isNaN(dateObj.getTime())) { + return 'Invalid Date' + } + + const year = dateObj.getFullYear() + const month = dateObj.getMonth() + 1 // getMonth() returns 0-11 + const day = dateObj.getDate() + const hours = dateObj.getHours() + const minutes = dateObj.getMinutes() + const seconds = dateObj.getSeconds() + + const pad = (num: number): string => String(num).padStart(2, '0') + + let result = format + result = result.replace(/YYYY/g, year.toString()) + result = result.replace(/MM/g, pad(month)) + result = result.replace(/DD/g, pad(day)) + result = result.replace(/HH/g, pad(hours)) + result = result.replace(/mm/g, pad(minutes)) + result = result.replace(/ss/g, pad(seconds)) + + return result +}