diff options
| author | Fuwn <[email protected]> | 2024-02-12 12:34:45 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-02-12 12:34:45 -0800 |
| commit | 80e972a99b4fd78eb3f597638bfa799b548c174c (patch) | |
| tree | acef742fde8c32e0b9d9c0b2aa04d24fa89eb073 /src | |
| parent | fix(time): database time to date (diff) | |
| download | due.moe-80e972a99b4fd78eb3f597638bfa799b548c174c.tar.xz due.moe-80e972a99b4fd78eb3f597638bfa799b548c174c.zip | |
fix(time): proper database time update
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/Database/userBadges.ts | 3 | ||||
| -rw-r--r-- | src/lib/Utility/time.ts | 18 | ||||
| -rw-r--r-- | src/routes/user/[user]/badges/+page.svelte | 10 |
3 files changed, 26 insertions, 5 deletions
diff --git a/src/lib/Database/userBadges.ts b/src/lib/Database/userBadges.ts index 8816ac40..1f4b5b5b 100644 --- a/src/lib/Database/userBadges.ts +++ b/src/lib/Database/userBadges.ts @@ -52,7 +52,8 @@ export const updateUserBadge = async (userId: number, id: number, badge: Badge) post: badge.post, image: badge.image, description: badge.description, - category: badge.category + category: badge.category, + time: badge.time }) .eq('id', id) .eq('user_id', userId); diff --git a/src/lib/Utility/time.ts b/src/lib/Utility/time.ts index 26fdc0ee..4ab72212 100644 --- a/src/lib/Utility/time.ts +++ b/src/lib/Utility/time.ts @@ -1,4 +1,20 @@ export const databaseTimeToDate = (time: string) => new Date(time + 'Z'); export const dateToDatabaseTime = (date: Date) => - date.toISOString().replace(' ', 'T').replace(' ', 'Z'); + date.toISOString().replace('T', ' ').replace(/\..+/, ''); + +export const dateToInputTime = (date: Date) => { + const offset = date.getTimezoneOffset(); + + date.setMinutes(date.getMinutes() - offset); + + return date.toISOString().slice(0, 16); +}; + +export const inputTimeToDatabaseTime = (date: Date) => { + const offset = date.getTimezoneOffset(); + + date.setMinutes(date.getMinutes() + offset); + + return dateToDatabaseTime(date); +}; diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index 1e22a489..e0cbeeb8 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -5,7 +5,7 @@ // import { domToBlob } from 'modern-screenshot'; import { onMount } from 'svelte'; import HeadTitle from '$lib/Home/HeadTitle.svelte'; - import { databaseTimeToDate, dateToDatabaseTime } from '$lib/Utility/time'; + import { databaseTimeToDate, dateToInputTime, inputTimeToDatabaseTime } from '$lib/Utility/time'; import root from '$lib/Utility/root.js'; import tooltip from '$lib/Tooltip/tooltip.js'; import proxy from '$lib/Utility/proxy.js'; @@ -191,7 +191,9 @@ )}${ description.value.length > 0 ? `&description=${encodeURIComponent(description.value)}` : '' }${category.value.length > 0 ? `&category=${encodeURIComponent(category.value)}` : ''}${ - time.valueAsDate ? `&time=${encodeURIComponent(dateToDatabaseTime(time.valueAsDate))}` : '' + time.valueAsDate + ? `&time=${encodeURIComponent(inputTimeToDatabaseTime(time.valueAsDate))}` + : '' }${ selectedBadge && selectedBadge.id ? `&update=${encodeURIComponent(selectedBadge.id)}` : '' }`, @@ -564,7 +566,9 @@ <span style="float: right;"> <input type="datetime-local" - value={selectedBadge && selectedBadge.time ? selectedBadge.time : ''} + value={selectedBadge && selectedBadge.time + ? dateToInputTime(databaseTimeToDate(selectedBadge.time)) + : ''} /> <small>Must be full date and time, defaults to now if any fields empty</small> </span> |