Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

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 в місцевий час, враховуючи часовий зсув.

Нотатка:

При використанні Date.prototype.getTimezoneOffset() необхідно пам'ятати, що він повертає зсув у хвилинах, який потрібно відняти від UTC, щоб отримати місцевий час. Наприклад, якщо метод поверне "-120", це означає, що ваша часова зона випереджає UTC на 2 години.

let date = new Date();
let offset = date.getTimezoneOffset();
let localHour = date.getUTCHours() - (offset / 60);
Нотатка:

Позитивне значення результату вказує на те, що місцевий час відстає від UTC, а негативне – випереджає.

Порада:

Якщо ви використовуєте getTimezoneOffset() з метою врахування літнього часу, будьте обережні. Деякі країни можуть змінювати свої правила щодо літнього часу, тому завжди перевіряйте актуальність інформації.

Порада:

Якщо вам легше сприймати часовий зсув у годинах, а не в хвилинах, просто поділіть результат getTimezoneOffset() на 60:

let offsetInHours = date.getTimezoneOffset() / 60;

Синтаксис

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`);