diff --git a/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx b/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx index 9d460d3..daefea3 100644 --- a/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx +++ b/ordinis-admin-ui/src/components/form/SchemaDrivenForm.tsx @@ -51,7 +51,12 @@ const humanize = (key: string): string => const parseFormDate = (s: unknown): Date | null => { if (typeof s !== 'string' || !s) return null - const d = new Date(s) + // Pure date "YYYY-MM-DD" парсим как локальную полуночь, иначе для TZ западнее + // UTC new Date() уедет на день назад. Для строк с временем — стандартный парс. + const pureDate = /^(\d{4})-(\d{2})-(\d{2})$/.exec(s) + const d = pureDate + ? new Date(Number(pureDate[1]), Number(pureDate[2]) - 1, Number(pureDate[3])) + : new Date(s) if (Number.isNaN(d.getTime())) return null if (d.getFullYear() >= 9999) return null return d