From 7032c552a8d7076fb156b2938938e85208ebe1b5 Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 18 Sep 2024 17:32:02 +0900 Subject: [PATCH] feat: Refactor formatted_date component and add format function --- src/lib/components/formatted_date.svelte | 17 ++--------------- src/lib/scripts/formatted_date.ts | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 15 deletions(-) create mode 100644 src/lib/scripts/formatted_date.ts diff --git a/src/lib/components/formatted_date.svelte b/src/lib/components/formatted_date.svelte index 2930e4b..d06fa8f 100644 --- a/src/lib/components/formatted_date.svelte +++ b/src/lib/components/formatted_date.svelte @@ -3,22 +3,9 @@ if (typeof date === 'string') date = new Date(date); - const pad = function (str: string): string { - return ('0' + str).slice(-2); - }; + import { format } from "$lib/scripts/formatted_date"; - const year = date.getFullYear().toString(); - const month = pad((date.getMonth() + 1).toString()); - const day = pad(date.getDate().toString()); - const hour = pad(date.getHours().toString()); - const min = pad(date.getMinutes().toString()); - const sec = pad(date.getSeconds().toString()); - const tz = -date.getTimezoneOffset(); - const sign = tz >= 0 ? '+' : '-'; - const tzHour = pad((tz / 60).toString()); - const tzMin = pad((tz % 60).toString()); - - let formattedDate = `${year}-${month}-${day}T${hour}:${min}:${sec}${sign}${tzHour}:${tzMin}`; + const formattedDate = format(date); {formattedDate} diff --git a/src/lib/scripts/formatted_date.ts b/src/lib/scripts/formatted_date.ts new file mode 100644 index 0000000..b8b2667 --- /dev/null +++ b/src/lib/scripts/formatted_date.ts @@ -0,0 +1,20 @@ +export const format = ( + date: Date +) => { + const pad = function (str: string): string { + return ('0' + str).slice(-2); + }; + + const year = date.getFullYear().toString(); + const month = pad((date.getMonth() + 1).toString()); + const day = pad(date.getDate().toString()); + const hour = pad(date.getHours().toString()); + const min = pad(date.getMinutes().toString()); + const sec = pad(date.getSeconds().toString()); + const tz = -date.getTimezoneOffset(); + const sign = tz >= 0 ? '+' : '-'; + const tzHour = pad((tz / 60).toString()); + const tzMin = pad((tz % 60).toString()); + + return `${year}-${month}-${day}T${hour}:${min}:${sec}${sign}${tzHour}:${tzMin}`; +}; \ No newline at end of file