diff --git a/programmerbar-web/src/lib/date.ts b/programmerbar-web/src/lib/date.ts index d0c1406..4e1109a 100644 --- a/programmerbar-web/src/lib/date.ts +++ b/programmerbar-web/src/lib/date.ts @@ -1,4 +1,4 @@ -import { toZonedTime } from 'date-fns-tz'; +import { toZonedTime, fromZonedTime } from 'date-fns-tz'; import { format } from 'date-fns'; export type Dateish = string | Date | number; @@ -33,13 +33,18 @@ export const toLocalDateTimeString = (date: Dateish): string => { }; export const parseDateTimeLocal = (value: string): Date => { - return new Date(value); + return fromZonedTime(value, OSLO_TIME_ZONE); }; export const toUtcISOStringFromLocal = (value: string) => { - return new Date(value).toISOString(); + return fromZonedTime(value, OSLO_TIME_ZONE).toISOString(); }; export const ISOStandard = (date: Dateish) => { return toLocalDateTimeString(date); }; + +export const toDateTimeLocalInput = (date: Dateish): string => { + const utcDate = ensureDate(date); + return format(utcDate, "yyyy-MM-dd'T'HH:mm"); +}; diff --git a/programmerbar-web/src/routes/(portal)/portal/arrangementer/[id]/rediger/+page.svelte b/programmerbar-web/src/routes/(portal)/portal/arrangementer/[id]/rediger/+page.svelte index e87b1ce..ac21235 100644 --- a/programmerbar-web/src/routes/(portal)/portal/arrangementer/[id]/rediger/+page.svelte +++ b/programmerbar-web/src/routes/(portal)/portal/arrangementer/[id]/rediger/+page.svelte @@ -7,7 +7,7 @@ import Checkbox from '$lib/components/ui/Checkbox.svelte'; import { enhance } from '$app/forms'; import { CreateEventState } from '$lib/states/create-event-state.svelte'; - import { ISOStandard } from '$lib/date'; + import { toDateTimeLocalInput } from '$lib/date'; import { beforeNavigate } from '$app/navigation'; import { onMount } from 'svelte'; @@ -19,14 +19,14 @@ onMount(() => { eventState.name = data.event.name; - eventState.date = ISOStandard(data.event.date); + eventState.date = toDateTimeLocalInput(data.event.date); eventState.description = data.event.description || ''; eventState.shouldBePublic = !!(data.event.description || data.event.slug); data.event.shifts.forEach((shift) => { eventState.shifts.push({ - startAt: ISOStandard(shift.startAt), - endAt: ISOStandard(shift.endAt), + startAt: toDateTimeLocalInput(shift.startAt), + endAt: toDateTimeLocalInput(shift.endAt), users: shift.members.map((member) => ({ id: member.user.id, name: member.user.name