Визначаємо часовий пояс користувача

ПублікаціїДата і час

Розглянемо способи отримання часового поясу користувача за допомогою JavaScript.

Зверніть увагу що інколи користувачі в настройках ОС вказують не вірний часовий пояс. Хоча здебільшого часовий пояс визначається автоматично з мережі.

Date.getTimezoneOffset()

Date.getTimezoneOffset() повертає зміщення часового поясу UTC відносно локалі користувача.

Наприклад для України часова зона "Europe/Kiev" часова зона +2, метод Date.getTimezoneOffset() повертає -120.

Одна часова зона це 60 хв. +2 для Києва це 120 хв, але метод повертає -120, тому що для зміщення до 0 потрібно -120.

Зверніть увагу! У літній час для Києва зміщення буде -180. Це пов'язано з переходом на літній час.

var d=new Date(); alert( 'зміщення відносно UTC '+d.getTimezoneOffset() );

Вираховуємо часову зону:

var d=new Date(); var tz=(0-d.getTimezoneOffset())/60; alert('поточна локальна часова зона UTC: '+tz);

timeZone

Intl.DateTimeFormat.resolvedOptions() повертає назву локальної тайм зони ОС користувача.

function getTimeZone(){ return Intl.DateTimeFormat().resolvedOptions().timeZone; } alert( getTimeZone() );

Date.toString()

Витягуємо з рядка Date.toString() значення часового поясу:

function getTimeZone(){ var date = Date(); //Date.toString() var s = date.toString(); var tz=s.match(/(GMT?\+?\-?\d+?\:?\d+|GMT?\+?\-?\d+|GMT|UTC?\+?\-?\d|ADT|HST|AKDT|HADT|PDT|MST|MDT|CDT|EDT|EST|AST|CST)/g); return tz==null?'':tz[0]; } alert( getTimeZone() );
Адмін 2020-04-03 22:50:00

Тільки зареєстровані користувачі можуть писати коментарі.