Дубай UTC+4: дата сдвинулась на день

🆕 Дубай UTC+4: дата сдвинулась на день Коллеги, клиент в Дубае. Дата: вчера. На самом деле: сегодня.

formatDate без учёта таймзоны. Все даты в интерфейсе на день раньше.

📍Проблема Клиент жалуется: "Заказ от 15 числа, а у вас показано 14-е".

Проверил код:

formatDate(new Date()) // 14.03.2026

В Дубае UTC+4, у нас UTC+0. Разница 4 часа сдвигает дату.

📍Корень проблемы JavaScript Date работает в локальной таймзоне пользователя. formatDate игнорировал это:

// Неправильно
date.getDate() + '.' + (date.getMonth() + 1)

// Правильно 
date.toLocaleDateString('ru-RU', {
 timeZone: 'Asia/Dubai'
})

Один метод, кардинально разный результат.

📍Исправление Обновил formatDate в 7 файлах (17 замен):

  1. utils/dateUtils.js — основная логика
  2. components/OrderCard.vue — отображение заказов
  3. pages/Dashboard.vue : аналитика
  4. components/Calendar.vue : планировщик
  5. Exports в Excel и PDF

Теперь учитывает таймзону пользователя.

📍Тестирование Проверил с разными таймзонами:

Вся работает корректно.

📍Урок Время и дата : одни из самых сложных вещей в программировании. Всегда думать о таймзонах, локализации, переводе часов.

Использовать проверенные библиотеки: date-fns, moment.js, dayjs.

Как исправил 8 багов локализации за один вечер. Работа с датами и времени в бесплатном гиде.

#моикейсы_поповвии Работаем дальше.

Поделиться: Telegram LinkedIn X

Больше — в канале

Практические кейсы AI-автоматизации для предпринимателей

Vladislav Popov

Владислав Попов

AI-консультант, 15+ лет в IT, PhD (University of York). Помогаю предпринимателям автоматизировать бизнес с помощью AI.