diff --git a/src/App.vue b/src/App.vue index bdd5221..56855ba 100644 --- a/src/App.vue +++ b/src/App.vue @@ -9,6 +9,7 @@ import { useToolbar } from './store/toolbar'; import IrdomToolbar from './components/IrdomToolbar.vue'; import CalendarDropdown from './views/timetable/CalendarDropdown.vue'; import { apiClient } from '@/api/'; +import { parseLocalYmdDate } from './utils/date'; const profileStore = useProfileStore(); const toolbar = useToolbar(); @@ -44,7 +45,7 @@ onMounted(async () => { > diff --git a/src/utils/date.ts b/src/utils/date.ts index 489e558..60b9459 100644 --- a/src/utils/date.ts +++ b/src/utils/date.ts @@ -3,6 +3,11 @@ import { lz } from './utils'; export const getWeekdayName = (date: Date, weekday: 'short' | 'long' = 'short') => date.toLocaleString('ru-RU', { weekday }); +export const parseLocalYmdDate = (ymd: string) => { + const [year, month, day] = ymd.split('-').map(Number); + return new Date(year, month - 1, day); +}; + export const getDateWithDayOffset = (date: Date, offset: number) => { const d = new Date(date); d.setDate(date.getDate() + offset); diff --git a/src/views/timetable/TimetableView.vue b/src/views/timetable/TimetableView.vue index b752b42..95ada9b 100644 --- a/src/views/timetable/TimetableView.vue +++ b/src/views/timetable/TimetableView.vue @@ -5,7 +5,7 @@ import { computed, ref, watch } from 'vue'; import AsyncEventsList from './AsyncEventsList.vue'; import CalendarDropdown from './CalendarDropdown.vue'; import { useTimetableStore } from '@/store/timetable'; -import { stringifyDate, getDateWithDayOffset } from '@/utils/date'; +import { stringifyDate, getDateWithDayOffset, parseLocalYmdDate } from '@/utils/date'; import { LocalStorage, LocalStorageItem } from '@/models/LocalStorage'; import IrdomLayout from '@/components/IrdomLayout.vue'; import { useToolbar } from '@/store/toolbar'; @@ -39,7 +39,7 @@ toolbar.setup({ }); const date = computed(() => { - return new Date(route.params.date as string); + return parseLocalYmdDate(route.params.date as string); }); // HACK: на каждое изменение даты обновляем компонент Suspense