Есть ли способ получить текущее время в наносекундах с помощью JavaScript? - PullRequest
38 голосов
/ 14 мая 2011

Итак, я знаю, что могу получить текущее время в миллисекундах, используя JavaScript.Но можно ли вместо этого получить текущее время в наносекундах?

Ответы [ 6 ]

62 голосов
/ 09 августа 2012

Достигайте микросекундной точности в большинстве браузеров, используя:

window.performance.now()

Смотри также:

10 голосов
/ 25 декабря 2015

Опираясь на ответ Джеффри, чтобы получить абсолютную временную отметку (как того хотел ОП), код будет выглядеть так:

var TS = window.performance.timing.navigationStart + window.performance.now();

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

8 голосов
/ 28 февраля 2016

В средах на стороне сервера, таких как Node.js, вы можете использовать следующую функцию, чтобы получить время в наносекундах

function getNanoSecTime() {
  var hrTime = process.hrtime();
  return hrTime[0] * 1000000000 + hrTime[1];
}

Также получите микросекунды аналогичным образом:

function getMicSecTime() {
  var hrTime = process.hrtime();
  return hrTime[0] * 1000000 + parseInt(hrTime[1] / 1000);
}
5 голосов
/ 14 мая 2011

Нет. Нет вероятности, что вы получите наносекундную точность на уровне JavaScript.

Если вы пытаетесь сравнить очень быструю операцию, поместите ее в цикл, который запускает ее несколько тысяч раз.

3 голосов
/ 14 мая 2011

JavaScript записывает время в миллисекундах, поэтому вы не сможете получить время с такой точностью. Ответ smart-aleck - «умножить на 1 000 000».

2 голосов
/ 17 февраля 2017

Да!Попробуйте превосходное саззе nano-time

let now = require('nano-time');
now(); // '1476742925219947761' (returns as string due to JS limitation)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...