Skip to content

fix(vueManager): format order date filters in local calendar#405

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-386-orders-date-local
Open

fix(vueManager): format order date filters in local calendar#405
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-386-orders-date-local

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

Фильтр дат в OrdersGrid отправлял YYYY-MM-DD через date.toISOString().split('T')[0] (UTC). В TZ вроде Asia/Almaty локальный календарный день мог уехать на соседние сутки → неверный *_from / *_to.

Добавлен общий formatLocalDateYmd (локальные getFullYear / getMonth / getDate). OrdersGrid и ProductOptionField (уже имел правильный локальный формат) используют его. Audit: других toISOString().split для date filters в vueManager нет.

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #386

Как это было протестировано?

  • Ручное тестирование
  • Автоматические тесты (PHPStan, ESLint)
  • Тестирование на разных версиях PHP/MODX

Gate E (exit codes):

  • npx eslint по затронутым путям → 0
  • npx prettier --check → 0
  • TZ=Asia/Almaty npm run test:utils → 0
  • red-green: util на toISOString при TZ=Asia/Almaty → fail (2026-04-19 vs 2026-04-20); с фиксом → 0

Конфигурация тестирования:

  • MiniShop3: ветка fix/issue-386-orders-date-local
  • Node: локально
  • TZ red-green: Asia/Almaty

Скриншоты (если применимо)

До После

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок
  • ESLint проходит без ошибок (для JS/Vue изменений)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

  • formatDateForPost в ProductOptionField по-прежнему форматирует только instanceof Date; строки YYYY-MM-DD не прогоняет через new Date() (иначе снова UTC-сдвиг).
  • Review: блокеров нет; lint/prettier на тесте поправлены; npm run test:utils добавлен.

OrdersGrid used toISOString() for YYYY-MM-DD filter params, which shifts
the day east/west of UTC. Share formatLocalDateYmd and reuse it in
ProductOptionField; add a Node regression test (TZ=Asia/Almaty).
@Ibochkarev Ibochkarev added priority: medium Средний приоритет javascript Pull requests that update javascript code bug Something isn't working labels Jul 16, 2026
@Ibochkarev Ibochkarev requested a review from biz87 July 16, 2026 04:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working javascript Pull requests that update javascript code priority: medium Средний приоритет

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] OrdersGrid: фильтр даты через toISOString уезжает в UTC

1 participant