diff --git a/src/components/sections/items/time-input/TimeInputSectionItem.android.tsx b/src/components/sections/items/time-input/TimeInputSectionItem.android.tsx index 19f9bdd250..713bcbbccf 100644 --- a/src/components/sections/items/time-input/TimeInputSectionItem.android.tsx +++ b/src/components/sections/items/time-input/TimeInputSectionItem.android.tsx @@ -23,7 +23,10 @@ export function TimeInputSectionItem(props: TimeInputSectionItemProps) { setShow(true)} - value={formatLocaleTime(time, language)} + value={formatLocaleTime(time, language, { + // Value is already adjusted to the timezone + ignoreTimeZone: true, + })} containerStyle={{alignItems: 'flex-end'}} {...innerprops} /> diff --git a/src/stacks-hierarchy/Root_TabNavigatorStack/TabNav_DashboardStack/Dashboard_TripSearchScreen/components/DayLabel.tsx b/src/stacks-hierarchy/Root_TabNavigatorStack/TabNav_DashboardStack/Dashboard_TripSearchScreen/components/DayLabel.tsx index a894b77c32..a6d8355996 100644 --- a/src/stacks-hierarchy/Root_TabNavigatorStack/TabNav_DashboardStack/Dashboard_TripSearchScreen/components/DayLabel.tsx +++ b/src/stacks-hierarchy/Root_TabNavigatorStack/TabNav_DashboardStack/Dashboard_TripSearchScreen/components/DayLabel.tsx @@ -1,9 +1,9 @@ +import {ThemeText} from '@atb/components/text'; import {StyleSheet} from '@atb/theme'; import {TripSearchTexts, useTranslation} from '@atb/translations'; import {daysBetween, formatToSimpleDate, isSameDay} from '@atb/utils/date'; import {parseISO} from 'date-fns'; import React from 'react'; -import {ThemeText} from '@atb/components/text'; type OptionalNextDayLabelProps = { departureTime: string; diff --git a/src/utils/date.ts b/src/utils/date.ts index 4db06ddbcb..b43cc40bd3 100644 --- a/src/utils/date.ts +++ b/src/utils/date.ts @@ -14,7 +14,7 @@ import { getMinutes, getSeconds, isPast, - isSameDay, + isSameDay as isSameDayInternal, isSameYear, isToday, isWithinInterval, @@ -27,6 +27,7 @@ import { FormatOptionsWithTZ, formatInTimeZone, fromZonedTime, + toZonedTime, } from 'date-fns-tz'; import {enGB as en, nb} from 'date-fns/locale'; import humanizeDuration from 'humanize-duration'; @@ -346,8 +347,6 @@ export function fullDateTime(isoDate: string | Date, language: Language) { }); } -export {isSameDay}; - export function formatToShortDate(date: Date | string, language: Language) { return format(parseIfNeeded(date), 'dd. MMM', { locale: languageToLocale(language), @@ -442,7 +441,16 @@ export function formatToWeekday( } export function daysBetween(base: string | Date, target: string | Date) { - return differenceInCalendarDays(parseIfNeeded(target), parseIfNeeded(base)); + return differenceInCalendarDays( + toZonedTime(parseIfNeeded(target), CET), + toZonedTime(parseIfNeeded(base), CET), + ); +} +export function isSameDay(base: string | Date, target: string | Date) { + return isSameDayInternal( + toZonedTime(parseIfNeeded(target), CET), + toZonedTime(parseIfNeeded(base), CET), + ); } export function isSeveralDays(items: string[]) {