GetMilliseconds: примеры (JAVASCRIPT)

Функция getMilliseconds в JavaScript: полный обзор
Раздел: Дата и время, Методы
getMilliseconds: Number

Основные сведения

Метод getMilliseconds() принадлежит объекту Date в JavaScript. Он используется для извлечения миллисекунд из указанной даты по местному времени. Значение возвращается в виде целого числа.

Метод не принимает аргументов. Его вызов для объекта Date возвращает число от 0 до 999, представляющее миллисекунды.

Этот метод полезен при работе с точным временем, например, при измерении интервалов, логировании событий с высокой точностью или синхронизации операций.

Простые примеры

Пример с текущей датой:

const now = new Date();
console.log(now.getMilliseconds());
// Результат зависит от времени выполнения, например: 456

Пример с конкретной датой:

const specificDate = new Date('2024-12-31T23:59:59.789');
console.log(specificDate.getMilliseconds());
789

Создание даты с нулевыми миллисекундами:

const date = new Date(2024, 11, 31, 23, 59, 59, 0);
console.log(date.getMilliseconds());
0

Похожие методы в JavaScript

  • getUTCMilliseconds(): Возвращает миллисекунды по всемирному координированному времени (UTC). Используется, когда нужна независимость от часового пояса.
  • getTime(): Возвращает количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 UTC (эпоха Unix). Подходит для вычисления разницы между датами.
  • Date.now(): Статический метод, возвращающий текущее время в миллисекундах с эпохи Unix. Эффективен для быстрого получения временной метки.
  • performance.now(): Предоставляет временную метку с высокой точностью (доли миллисекунды) с момента начала загрузки страницы. Применяется для точных замеров производительности.

Типичные ошибки

Вызов метода для не объекта Date приводит к ошибке TypeError.

const str = '2024-01-01';
console.log(str.getMilliseconds());
TypeError: str.getMilliseconds is not a function

Ожидание, что метод возвращает полное время в миллисекундах, а не только их долю секунды.

const date = new Date();
// Неправильно:
const totalMs = date.getMilliseconds();
// Правильно:
const totalMsCorrect = date.getTime();

Игнорирование того, что метод работает по местному времени, что может вызвать путаницу при сравнении дат из разных часовых поясов.

История изменений

Метод getMilliseconds() был стандартизирован в ECMAScript 1 (1997 год) и с тех пор его поведение оставалось стабильным. В современных стандартах ECMAScript (ES6 и выше) изменений в его работу не вносилось.

Расширенные примеры применения

Измерение времени выполнения операции с высокой точностью:

Пример javascript
const start = new Date();
// Имитация длительной операции
for (let i = 0; i < 1000000; i++) {}
const end = new Date();
const diffMs = (end.getTime() - start.getTime()) * 1000 + (end.getMilliseconds() - start.getMilliseconds());
console.log(`Операция заняла ${diffMs} микросекунд`);
Операция заняла 1234 микросекунд

Создание временной метки с включением миллисекунд для логирования:

Пример javascript
function getTimestamp() {
  const d = new Date();
  return `${d.getHours()}:${d.getMinutes()}:${d.getSeconds()}.${d.getMilliseconds().toString().padStart(3, '0')}`;
}
console.log(`Событие произошло в ${getTimestamp()}`);
Событие произошло в 14:5:23.042

Генерация уникального идентификатора, использующего миллисекунды (не рекомендуется для криптографических целей):

Пример javascript
function generateSimpleId() {
  const date = new Date();
  return `id_${date.getTime()}_${date.getMilliseconds()}`;
}
console.log(generateSimpleId());
id_1735657345123_123

Синхронизация анимации с миллисекундной точностью (концепт):

Пример javascript
function animate(startTime) {
  const currentTime = new Date();
  const elapsedMs = currentTime.getMilliseconds() - startTime.getMilliseconds();
  // Логика анимации на основе elapsedMs
  console.log(`Прошло ${elapsedMs} мс с начала цикла`);
}
// Запуск цикла анимации
const cycleStart = new Date();
setInterval(() => animate(cycleStart), 16); // Приблизительно 60 кадров в секунду

Анализ распределения событий по времени с точностью до миллисекунды:

Пример javascript
const eventLog = [];
// Имитация регистрации событий
for (let i = 0; i < 5; i++) {
  setTimeout(() => {
    const eventTime = new Date();
    eventLog.push({ event: i, ms: eventTime.getMilliseconds() });
    console.log(eventLog);
  }, i * 100);
}
[
  { event: 0, ms: 123 },
  { event: 1, ms: 223 },
  { event: 2, ms: 323 },
  { event: 3, ms: 423 },
  { event: 4, ms: 523 }
]

Аналоги в других языках программирования

PHP: Функция date('v') возвращает миллисекунды. Отличие: форматирование даты происходит через строку формата.

echo date('v');
123

Python: Атрибут microsecond объекта datetime возвращает микросекунды. Для миллисекунд требуется преобразование.

from datetime import datetime
print(datetime.now().microsecond // 1000)
456

MySQL: Функция MICROSECOND() извлекает микросекунды из времени. Возвращает значение от 0 до 999999.

SELECT MICROSECOND('12:34:56.123456');
123456

C (стандартная библиотека): В языке C для работы с миллисекундами часто используют функцию gettimeofday() (не является стандартом C, но распространена в POSIX-системах), которая возвращает структуру с секундами и микросекундами.

#include 
struct timeval tv;
gettimeofday(&tv, NULL);
long milliseconds = tv.tv_usec / 1000;

JS getMilliseconds function comments

En
GetMilliseconds Returns the milliseconds (0-999) in the specified date