Определение часовой зоны в JS

Метод Intl.DateTimeFormat.prototype.resolvedOptions() возвращает новый объект со свойствами, отражающими языковой стандарт и параметры форматирования даты и времени, вычисленные во время инициализации этого Intl.DateTimeFormat объекта.

Чтобы получить часовую зону посетителя, просто возмём у этого всего свойство timeZone. Запишем это в переменную currentTimezone

let currentTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone;

Как проверить что посетитель из России

Чтобы определить является ли посетитель из России, добавим константу RUSSIAN_TIMEZONES куда поместим массив с таймзонами для РФ:

const RUSSIAN_TIMEZONES = [
    "Asia/Anadyr",
    "Asia/Barnaul",
    "Asia/Chita",
    "Asia/Irkutsk",
    "Asia/Kamchatka",
    "Asia/Khandyga",
    "Asia/Krasnoyarsk",
    "Asia/Magadan",
    "Asia/Novokuznetsk",
    "Asia/Novosibirsk",
    "Asia/Omsk",
    "Asia/Sakhalin",
    "Asia/Srednekolymsk",
    "Asia/Tomsk",
    "Asia/Ust",
    "Asia/Vladivostok",
    "Asia/Yakutsk",
    "Asia/Yekaterinburg",
    "Europe/Astrakhan",
    "Europe/Kaliningrad",
    "Europe/Kirov",
    "Europe/Moscow",
    "Europe/Samara",
    "Europe/Saratov",
    "Europe/Ulyanovsk",
    "Europe/Volgograd"
];

Теперь сделаем проверку в JavaScript является ли посетитель из РФ:

if (RUSSIAN_TIMEZONES.includes(currentTimezone)) {
    // тут код если посетитель из РФ
}
Комментарии 0

*** чтобы писать комментарии.