@vladimirincog

Как получить utc offset с точность до секунд?

Есть такой timestamp: -2208988800000
1 . Если рассматривать этот timestamp без офсета временной зоны то дата будет такая
Mon Jan 01 1900 00:00:00 GMT+0000.
2. Как только этот timestamp передается в конструктор
new Date(-2208988800000), js создает дату со смещением (Time Zones - Moscow)
Mon Jan 01 1900 02:30:17 GMT+0230.

Первое что пришло на ум вычесть из timestamp смещение временной зоны, но new Date(-2208988800000).getTimezoneOffset() возвращает значение: -150 (минут).
150 минут - это смещение на 2 часа 30 минут (02:30:00), а 1 января 1900 года смещение было (02:30:17)
Как получить эти 17 секунд ?
Или как получить дату без смещения ?

moment(timestamp).utcOffset() - также возвращает целое значение в минутах
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Думаю можно просто рассчитать:
function calculateUTCOffsetSeconds(timestamp) {
  const date = new Date(timestamp);
  const utcTime = date.getUTCHours() * 3600 +
    date.getUTCMinutes() * 60 +
    date.getUTCSeconds();
  const localTime = date.getHours() * 3600 +
    date.getMinutes() * 60 +
    date.getSeconds();
  return localTime - utcTime;
}
console.log(calculateUTCOffsetSeconds(-2208988800000));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы