JS метод Date.getTimezoneOffset()
Загальний опис
Date.prototype.getTimezoneOffset()
— це метод у JavaScript, призначений для отримання зміщення часової зони в хвилинах між місцевим часом та Універсальним координованим часом (UTC). Цей метод відіграє ключову роль у розробці веб-застосунків, де правильне відображення часу відповідно до місцевого часу користувача є критично важливим.
Метод Date.prototype.getTimezoneOffset()
не приймає жодних аргументів і повертає зміщення часу у хвилинах. Він корисний, коли треба конвертувати місцевий час у UTC або навпаки, а також для визначення місцевого часу користувача. Основні сфери застосування включають, але не обмежуються, обробкою часу і дати у туристичних сервісах, геолокаційних службах та в інших сценаріях, де важливий контекст часової зони.
Подивимося на практичний приклад:
let date = new Date();
let offset = date.getTimezoneOffset();
console.log(offset);
У випадку, коли ви запустите цей код в Україні (яка, до речі, має UTC+2 години), результатом буде "-120". Це означає, що поточна часова зона на 120 хвилин випереджає UTC.
Важливо зазначити, що getTimezoneOffset()
є частиною прототипу Date
, а отже, доступний для всіх екземплярів об'єкта Date
. Крім того, цей метод часто використовується в поєднанні з іншими методами Date
, щоб забезпечити повну адаптацію часу до потреб користувача.
Наприклад, якщо ви хочете конвертувати часову мітку UTC в локальний час:
let utcDate = new Date(Date.UTC(2023, 0, 1)); // 1 січня 2023 року в UTC
let offset = utcDate.getTimezoneOffset();
let localDate = new Date(utcDate.setMinutes(utcDate.getMinutes() - offset));
console.log(localDate);
Цей код конвертує часову мітку UTC в місцевий час, враховуючи часовий зсув.
Нотатка: | При використанні
|
Нотатка: | Позитивне значення результату вказує на те, що місцевий час відстає від UTC, а негативне – випереджає. |
Порада: | Якщо ви використовуєте |
Порада: | Якщо вам легше сприймати часовий зсув у годинах, а не в хвилинах, просто поділіть результат
|
Синтаксис
getTimezoneOffset()
Параметри
Return
integer
Повертає різницю в хвилинах між місцевим часом та часом UTC (Універсальним координованим часом). Якщо місцевий час передує UTC, результат буде негативним.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
3 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад демонструє роботу методу Date.prototype.getTimezoneOffset()
. Коли користувач натискає на кнопку "Отримати часовий зсув", відображається часова зона користувача відносно UTC у годинах.
В цьому прикладі ми створюємо новий об'єкт дати за допомогою Date
(). Далі, за допомогою методу getTimezoneOffset
(), отримуємо місцевий часовий зсув від UTC у хвилинах. Потім переводимо цей зсув у години. Наостанок, виводимо результат у форматі UTC, враховуючи додатковий або від'ємний зсув відносно UTC.
// Створюємо новий об'єкт дати
let currentDate = new Date();
// Отримуємо часовий зсув у хвилинах
let offset = currentDate.getTimezoneOffset();
// Переводимо зсув у години
let offsetInHours = offset / 60;
// Виводимо місцеву часову зону у форматі UTC
if (offsetInHours < 0) {
console.log(`UTC+{Math.abs(offsetInHours)}`);
} else {
console.log(`UTC-{offsetInHours}`);
}
У цьому прикладі ми визначаємо час у форматі UTC. Далі за допомогою методу getTimezoneOffset
() отримуємо часовий зсув від UTC у хвилинах. Переводячи цей зсув у години, ми можемо додати його до нашого UTC часу, щоб отримати місцевий час. На завершення ми виводимо отриманий місцевий час.
// Задаємо час у форматі UTC
let utcHour = 14; // 14:00 у форматі UTC
// Отримуємо часовий зсув у хвилинах за допомогою методу getTimezoneOffset
let offset = new Date().getTimezoneOffset();
// Переводимо зсув у години та додаємо до UTC часу
let localHour = utcHour - (offset / 60);
// Виводимо місцевий час
console.log(`Місцевий час: {localHour}:00`);