getMilliseconds() возвращает миллисекунды из объекта Date.
Если говорить просто, этот метод достаёт миллисекунды из даты и времени, например 0, 123, 500 или 999.
Синтаксис
Базовая запись выглядит так:
date.getMilliseconds()
Где:
date- это объектDate
Аргументы этому методу не нужны.
Что возвращает getMilliseconds()
Метод возвращает число от 0 до 999.
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
console.log(typeof date.getMilliseconds()); // "number"
Это важно:
0- начало секунды500- середина секунды999- последняя миллисекунда перед следующей секундой
Простой пример
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
Здесь:
2025- год0- январь15- день месяца14- часы30- минуты45- секунды123- миллисекунды
Метод возвращает 123, потому что это миллисекунды в указанной дате.
Пример с началом и концом секунды
const start = new Date(2025, 0, 15, 14, 30, 45, 0);
const end = new Date(2025, 0, 15, 14, 30, 45, 999);
console.log(start.getMilliseconds()); // 0
console.log(end.getMilliseconds()); // 999
Так хорошо видно, что диапазон значений идёт от 0 до 999.
getMilliseconds() не возвращает секунды
Это одна из самых частых ошибок.
getMilliseconds() отвечает только за миллисекунды. Секунды, минуты и часы он не возвращает.
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
Чем getMilliseconds() отличается от getSeconds()
Эти методы легко перепутать.
getMilliseconds()возвращает миллисекундыgetSeconds()возвращает секунды
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
console.log(date.getSeconds()); // 45
getMilliseconds() не возвращает полный timestamp
Это очень важный момент.
getMilliseconds() возвращает только часть времени внутри одной секунды, а не количество миллисекунд с 1 января 1970 года.
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
console.log(date.getTime()); // полный timestamp
Если нужен полный timestamp, используют getTime() или Date.now().
getMilliseconds() не меняет дату
Метод только читает значение миллисекунд.
Он не изменяет исходный объект Date.
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
const milliseconds = date.getMilliseconds();
console.log(milliseconds); // 123
console.log(date); // исходная дата остаётся той же
getMilliseconds() работает по локальному времени
Это важный момент.
Метод getMilliseconds() смотрит на дату с точки зрения локального часового пояса пользователя.
Если вам нужны миллисекунды именно по UTC, используют getUTCMilliseconds().
Чем getMilliseconds() отличается от getUTCMilliseconds()
Разница такая:
getMilliseconds()возвращает миллисекунды по локальному времениgetUTCMilliseconds()возвращает миллисекунды поUTC
Во многих случаях результат совпадёт, но при работе с UTC всё равно лучше использовать правильный метод.
const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 45, 123));
console.log(date.getUTCMilliseconds()); // 123
Если вы работаете с UTC, серверным временем и ISO-строками, этот нюанс важно учитывать.
Когда это полезно
getMilliseconds() особенно удобен, когда:
- нужна точная часть времени внутри секунды
- вы выводите время с миллисекундами
- сравниваете очень близкие моменты времени
- разбираете дату на отдельные части
Пример:
const date = new Date();
if (date.getMilliseconds() < 10) {
console.log("Сейчас начало секунды");
}
Пример для вывода точного времени
Метод часто используют вместе с getHours(), getMinutes() и getSeconds().
const date = new Date(2025, 0, 15, 9, 5, 7, 8);
console.log(
date.getHours(),
date.getMinutes(),
date.getSeconds(),
date.getMilliseconds()
); // 9 5 7 8
Если нужен красивый формат вроде 09:05:07.008, миллисекунды обычно дополнительно дополняют нулями.
Невалидная дата даёт NaN
Если объект Date содержит некорректную дату, результатом будет NaN.
const date = new Date("invalid");
console.log(date.getMilliseconds()); // NaN
Это полезно помнить, если дата приходит из формы, API или пользовательского ввода.
getMilliseconds() не создаёт дату и не форматирует строку
Этот метод не создаёт новую дату и не превращает её в текст.
Он только возвращает число миллисекунд.
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
Если нужен красивый вывод времени, его придётся формировать отдельно.
Частые ошибки
Путать getMilliseconds() и getSeconds()
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
console.log(date.getSeconds()); // 45
Это два разных метода.
Ожидать диапазон не от 0 до 999
const date = new Date(2025, 0, 15, 14, 30, 45, 0);
console.log(date.getMilliseconds()); // 0
В JavaScript миллисекунды идут от 0 до 999.
Ожидать полный timestamp
const date = new Date(2025, 0, 15, 14, 30, 45, 123);
console.log(date.getMilliseconds()); // 123
Если нужен полный timestamp, надо использовать getTime(), а не getMilliseconds().
Вызывать getMilliseconds() не у объекта Date
Правильно:
const date = new Date();
console.log(date.getMilliseconds());
Неправильно:
Date.getMilliseconds();
Метод getMilliseconds() работает у экземпляра Date, а не у самого объекта Date.
Забывать про локальное время
getMilliseconds() использует локальный часовой пояс пользователя.
Если важен именно UTC, лучше смотреть в сторону getUTCMilliseconds().
Не учитывать NaN у невалидной даты
const date = new Date("invalid");
console.log(date.getMilliseconds()); // NaN
Если дата может быть некорректной, полезно сначала проверить сам объект даты.
Быстрая памятка
getMilliseconds()вызывается у объектаDate- метод возвращает миллисекунды числом
- диапазон значений: от
0до999 0- это начало секундыgetMilliseconds()не возвращает полный timestamp- для полного timestamp есть
getTime()иDate.now() getMilliseconds()работает по локальному времени- для
UTCестьgetUTCMilliseconds() - у невалидной даты результатом будет
NaN
Коротко
getMilliseconds() в JavaScript нужен, чтобы получить миллисекунды из объекта Date. Главное, что стоит запомнить: метод возвращает число от 0 до 999, работает по локальному времени, не изменяет саму дату и его очень важно не путать с getTime(), который возвращает уже полный timestamp.