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 в місцевий час, враховуючи часовий зсув.
автор: Bond
- Порада
-
Якщо ви використовуєте
автор: BondgetTimezoneOffset()з метою врахування літнього часу, будьте обережні. Деякі країни можуть змінювати свої правила щодо літнього часу, тому завжди перевіряйте актуальність інформації. - Порада
-
Якщо вам легше сприймати часовий зсув у годинах, а не в хвилинах, просто поділіть результат
getTimezoneOffset()на 60:
автор: Bondlet offsetInHours = date.getTimezoneOffset() / 60; - Нотатка
-
Позитивне значення результату вказує на те, що місцевий час відстає від UTC, а негативне – випереджає.
автор: Bond - Нотатка
-
При використанні
Date.prototype.getTimezoneOffset()необхідно пам'ятати, що він повертає зсув у хвилинах, який потрібно відняти від UTC, щоб отримати місцевий час. Наприклад, якщо метод поверне "-120", це означає, що ваша часова зона випереджає UTC на 2 години.
автор: Bondlet date = new Date(); let offset = date.getTimezoneOffset(); let localHour = date.getUTCHours() - (offset / 60);
Синтаксис
getTimezoneOffset()
Повернення
integer-
Повертає різницю в хвилинах між місцевим часом та часом UTC (Універсальним координованим часом). Якщо місцевий час передує UTC, результат буде негативним.
автор: Bond
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 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`);
Коментарі
Коментарів ще немає — будьте першим!