diff --git a/web/src/lib/components/asset-viewer/detail-panel.svelte b/web/src/lib/components/asset-viewer/detail-panel.svelte index c968c986a8..4361da207b 100644 --- a/web/src/lib/components/asset-viewer/detail-panel.svelte +++ b/web/src/lib/components/asset-viewer/detail-panel.svelte @@ -307,6 +307,7 @@ weekday: 'short', hour: 'numeric', minute: '2-digit', + second: '2-digit', timeZoneName: timeZone ? 'longOffset' : undefined, }, { locale: $locale }, diff --git a/web/src/lib/components/shared-components/change-date.svelte b/web/src/lib/components/shared-components/change-date.svelte index f7acf06890..930bafd599 100644 --- a/web/src/lib/components/shared-components/change-date.svelte +++ b/web/src/lib/components/shared-components/change-date.svelte @@ -88,7 +88,7 @@ const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone; - let selectedDate = $state(initialDate.toFormat("yyyy-MM-dd'T'HH:mm")); + let selectedDate = $state(initialDate.toFormat("yyyy-MM-dd'T'HH:mm:ss.SSS")); // Use a fixed modern date to calculate stable timezone offsets for the list // This ensures that the offsets shown in the combobox are always current, // regardless of the historical date selected by the user. @@ -106,7 +106,7 @@ const { offsetMinutes, offsetFormat: zoneOffsetAtDate } = getModernOffsetForZoneAndDate(zone, date); // For validity, we still need to check if the exact date/time exists in the *original* timezone (for gaps/overlaps). const dateForValidity = DateTime.fromISO(date, { zone }); - const valid = dateForValidity.isValid && date === dateForValidity.toFormat("yyyy-MM-dd'T'HH:mm"); + const valid = dateForValidity.isValid && date === dateForValidity.toFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); return { value: zone, offsetMinutes, diff --git a/web/src/lib/elements/DateInput.svelte b/web/src/lib/elements/DateInput.svelte index a93d2e7cb8..c328a6c036 100644 --- a/web/src/lib/elements/DateInput.svelte +++ b/web/src/lib/elements/DateInput.svelte @@ -34,4 +34,5 @@ } onkeydown?.(e); }} + step=".001" />