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 и выше) изменений в его работу не вносилось.
Расширенные примеры применения
Измерение времени выполнения операции с высокой точностью:
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 микросекунд
Создание временной метки с включением миллисекунд для логирования:
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
Генерация уникального идентификатора, использующего миллисекунды (не рекомендуется для криптографических целей):
function generateSimpleId() {
const date = new Date();
return `id_${date.getTime()}_${date.getMilliseconds()}`;
}
console.log(generateSimpleId());id_1735657345123_123
Синхронизация анимации с миллисекундной точностью (концепт):
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 кадров в секундуАнализ распределения событий по времени с точностью до миллисекунды:
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;