JS метод Date.getUTCMilliseconds()


Загальний опис

Date.prototype.getUTCMilliseconds() – це метод у JavaScript, призначений для отримання кількості мілісекунд від початку поточної секунди згідно з універсальним координованим часом (UTC). Даний метод забезпечує точність роботи з часом у межах мілісекунди, що робить його незамінним у ряді ситуацій.

Основна особливість Date.prototype.getUTCMilliseconds() в тому, що він завжди повертає результат згідно з UTC, незалежно від часової зони, в якій знаходиться користувач. Тому, коли ви використовуєте цей метод, ви можете бути впевнені в точності отриманого результату.

let currentDate = new Date('2021-07-20T09:26:00.123Z');
console.log(currentDate.getUTCMilliseconds()); // 123

У цьому прикладі ми створили дату з конкретною кількістю мілісекунд та вивели їх на консоль з допомогою нашого методу.

Розглянемо декілька практичних сценаріїв.

  1. Робота з логами: При аналізі логів часових міток у різних часових зонах важливо мати можливість отримувати UTC мілісекунди для синхронізації.
let logDate = new Date('2023-05-10T11:45:30.567Z');
console.log(`Log timestamp: ${logDate.getUTCMilliseconds()} ms`);
  1. Вимірювання різниці часу між подіями: Наприклад, ви можете використовувати цей метод для вимірювання часу завантаження сторінки.
let startTime = new Date();

// Припустимо, після цього йде якийсь код або завантаження ресурсу...

let endTime = new Date();
let timeDifference = endTime - startTime;

let msDifference = timeDifference % 1000;

console.log(`The process took ${msDifference} ms.`);
  1. Створення унікальних ідентифікаторів: Мілісекунди можуть бути частиною унікального ідентифікатора, особливо якщо вам потрібна висока точність.
function generateUniqueID() {
    let currentUTCDate = new Date();
    return `${currentUTCDate.getTime()}-${currentUTCDate.getUTCMilliseconds()}`;
}

console.log(generateUniqueID());
автор: Bond

Порада

При роботі з розподіленими системами або при синхронізації даних між серверами різних часових зон, завжди надавайте перевагу UTC часу. Використовуючи Date.prototype.getUTCMilliseconds(), ви можете забезпечити консистентність та точність ваших часових міток.

автор: Bond
Нотатка

Хоча Date.prototype.getUTCMilliseconds() є дуже корисним у конкретних ситуаціях, важливо розуміти його відмінність від локального методу getMilliseconds(). Перший завжди повертає UTC час, тоді як другий – локальний час користувача. В залежності від вашої задачі, виберіть той, який найкраще підходить для вас.

автор: Bond
Нотатка

Зверніть увагу, що JavaScript оперує мілісекундами, але не всі середовища виконання можуть надати точність до однієї мілісекунди. У випадках, коли необхідна надвисока точність, можливо, доведеться використовувати спеціалізовані бібліотеки або інші методи.

автор: Bond
Нотатка

Новачки часто плутають Date.prototype.getUTCMilliseconds() з Date.prototype.getMilliseconds(). Головна відмінність між ними полягає в тому, що перший повертає кількість мілісекунд від початку секунди за UTC, тоді як другий діє за локальним часом користувача. Завжди переконайтеся, що ви використовуєте правильний метод для ваших потреб.

Приклад:

let currentDate = new Date();
console.log(currentDate.getUTCMilliseconds()); // UTC час
console.log(currentDate.getMilliseconds()); // Локальний час
автор: Bond

Синтаксис

getUTCMilliseconds()

Повернення

integer

Повертає число від 0 до 999, яке представляє мілісекунди в указаному об'єкті Date, взяте за координованим всесвітнім часом (UTC).

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 4 12 4
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

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

автор: Bond

У цьому прикладі ми створили функцію sleep(), яка імітує затримку на вказану кількість мілісекунд. Для вимірювання часу виконання цієї функції ми використовуємо Date.prototype.getUTCMilliseconds(). В результаті ми отримуємо різницю в мілісекундах між початковим і кінцевим часом виконання.

// Створюємо демонстраційну функцію, яка "засинає" на вказану кількість мілісекунд
function sleep(milliseconds) {
    const date = Date.now();
    let currentDate = null;
    do {
        currentDate = Date.now();
    } while (currentDate - date < milliseconds);
}

// Вимірюємо час виконання функції sleep
let startTime = new Date();  // Початковий час
sleep(100);  // Викликаємо функцію, яка "засинає" на 100 мс
let endTime = new Date();  // Кінцевий час

// Рахуємо різницю між початковим і кінцевим часами в мілісекундах
let elapsedMilliseconds = endTime.getUTCMilliseconds() - startTime.getUTCMilliseconds();

console.log(`Функція sleep виконувалася протягом ${elapsedMilliseconds} мілісекунд.`);
автор: Bond

У цьому прикладі ми створюємо два об'єкти дати, date1 та date2. date2 створюється з невеликою випадковою різницею від date1. За допомогою методу Date.prototype.getUTCMilliseconds() ми можемо перевірити, чи відбулися ці дві дати в одну і ту ж мілісекунду.

// Створюємо дві дати з випадковою різницею в мілісекундах (від 0 до 2)
let date1 = new Date();
let date2 = new Date(date1.getTime() + Math.floor(Math.random() * 3));

// Перевіряємо, чи обидві дати відбулися в одну і ту ж мілісекунду
if(date1.getUTCMilliseconds() === date2.getUTCMilliseconds()) {
    console.log("Обидві дати відбулися в одну і ту ж мілісекунду!");
} else {
    console.log("Дати відбулися в різний час.");
}
автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід