Есть ли какой-нибудь возможный способ найти часовой пояс, используя формат ISOtime в javascript - PullRequest
0 голосов
/ 12 февраля 2020

localDate: "2020-10-13" localTime: "20:00:00" dateTime: "2020-10-14T01: 00: 00Z"

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

1 Ответ

0 голосов
/ 13 февраля 2020

Предполагая, что ваши входные данные точно такие, как указано:

var localDate = "2020-10-13";
var localTime = "20:00:00";
var dateTime = "2020-10-14T01:00:00Z";

var offsetMillis = new Date(localDate + 'T' + localTime + 'Z') - new Date(dateTime);
var offsetHours = offsetMillis / 36e5;
console.log(offsetHours); // -5

Результат - -5, что на 5 часов меньше UT C. Это работает путем создания двух объектов даты, один из которых основан на UT C, а другой претендует на как UT C, но фактически использует локальные значения. Вычитание этих двух значений дает смещение.

Имейте в виду - это смещение от UT C, а не часовой пояс. Нельзя определить часовой пояс только по смещению. См. «Часовой пояс! = Смещение» в тэге часового пояса вики для получения более подробной информации.

Также имейте в виду, что не все смещения часового пояса будут в целых часах. Например, Индия использует UT C -5: 30, поэтому в этом случае ожидайте -5.5 от этого кода. (Существуют также часовые пояса со смещением в 45 минут.)

...