Как стать автором
Обновить

Комментарии 7

Так и не понял, к чему все эти сложности. Получаем время с сервера в любой таймзоне и преобразуем её в текущую таймзону пользователя:

const time_iso = '2024-01-01T11:22Z'
const moment = new $mol_time_moment( time_iso )
const moment_local = moment.toOffset() // 2024-01-01T14:22+03:00

В этой статье я описал как конвертировать дату при передаче ее на фронт и эта конвертация происходит автоматически с помощью NestJS интерцептора.

Тайм зон мы не берем из браузера пользователя, ее он сам себе устанавливает в настройках профиля.

Зачем мне как пользователю бегать по всем сайтам и менять в настройках таймзону при переплете между городами, когда я могу сделать это один раз в операционной системе или даже ни одного - она может быть взята автоматически из мобильной сети?

Ну я сталкивался при разработке СРМ, с тем что люди хотят видеть конкретную таймзон, не важно что у них комп или телефон подтягивает таймзон из сети.

Хозяин бизнеса может дать доступы сотрудникам из разных регионов и с разными настройками времени и временных зон на их компьютерах, и чтобы не возникало путаницы, проще вообще игнорировать время компьютера клиента и отображать серверное время + таймзон который задал директор.

Тогда тем более стоит отображать и местное время и рядом время в головном офисе, чтобы у людей голова не болела при взаимодействии с остальным миром, который живёт в основном по местному времени.

Куча кода - оно конечно интересно полистать. Но так и не понял, может пропустил, чем обоснован выбор хранения таймзоны в double/float?

private isValidStringDate(data: string | number | unknown) {
    return typeof data === 'string' && data.length === '0000-00-00T00:00:00.000Z'.length && !isNaN(+new Date(data));
  }

  private isValidDate(data: string | number | Date | object | unknown) {
    if (data && typeof data === 'object') {
      return !isNaN(+data);
    }
    return typeof data === 'string' && !isNaN(+new Date(data));
  }

Это вообще стра(ш/н)но выглядит.

переводить из одной в другую проще, да, качество кода не главное в этом проекте, главное донести основные мысли

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории