From 8036dc4b8ce57dea4f7c4b2feacd9fb3715af0bf Mon Sep 17 00:00:00 2001 From: okxint <130782884+okxint@users.noreply.github.com> Date: Tue, 16 Jun 2026 19:15:49 +0530 Subject: [PATCH] fix(web): respect local timezone when building date range for search (#29128) --- web/src/lib/modals/SearchFilterModal.svelte | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/web/src/lib/modals/SearchFilterModal.svelte b/web/src/lib/modals/SearchFilterModal.svelte index 0145caacaf..6766009af8 100644 --- a/web/src/lib/modals/SearchFilterModal.svelte +++ b/web/src/lib/modals/SearchFilterModal.svelte @@ -11,7 +11,7 @@ import { MediaType, QueryType, validQueryTypes } from '$lib/constants'; import { authManager } from '$lib/managers/auth-manager.svelte'; import type { SearchFilter } from '$lib/types'; - import { parseUtcDate } from '$lib/utils/date-time'; + import { asLocalTimeISO, parseUtcDate } from '$lib/utils/date-time'; import { generateId } from '$lib/utils/generate-id'; import { AssetTypeEnum, AssetVisibility, type MetadataSearchDto, type SmartSearchDto } from '@immich/sdk'; import { Button, HStack, Modal, ModalBody, ModalFooter } from '@immich/ui'; @@ -27,7 +27,6 @@ let { searchQuery, onClose }: Props = $props(); - const parseOptionalDate = (dateString?: DateTime) => (dateString ? parseUtcDate(dateString.toString()) : undefined); const toStartOfDayDate = (dateString: string) => parseUtcDate(dateString)?.startOf('day') || undefined; const formId = generateId(); @@ -144,8 +143,12 @@ make: filter.camera.make, model: filter.camera.model, lensModel: filter.camera.lensModel, - takenAfter: parseOptionalDate(filter.date.takenAfter)?.startOf('day').toISO() || undefined, - takenBefore: parseOptionalDate(filter.date.takenBefore)?.endOf('day').toISO() || undefined, + takenAfter: filter.date.takenAfter + ? asLocalTimeISO(filter.date.takenAfter.startOf('day') as DateTime) + : undefined, + takenBefore: filter.date.takenBefore + ? asLocalTimeISO(filter.date.takenBefore.endOf('day') as DateTime) + : undefined, visibility: filter.display.isArchive ? AssetVisibility.Archive : undefined, isFavorite: filter.display.isFavorite || undefined, isNotInAlbum: filter.display.isNotInAlbum || undefined,