Есть ли способ получить текущее время в наносекундах с помощью JavaScript?
Итак, я знаю, что могу получить текущее время в миллисекундах с помощью JavaScript. Но можно ли вместо этого получить текущее время в наносекундах?
6 ответов
достигните точности микросекунды в большинств браузерах используя:
window.performance.now()
Читайте также:
основываясь на ответе Джеффри, чтобы получить абсолютный штамп времени (как хотел OP), код будет:
var TS = window.performance.timing.navigationStart + window.performance.now();
результат в миллисекундных единицах, но является значением с плавающей запятой, как сообщается"С точностью до одной тысячной миллисекунды".
в серверных средах, таких как 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);
}
нет. Нет никаких шансов, что вы получите наносекундную точность на уровне JavaScript.
Если вы пытаетесь проверить какую-то очень быструю операцию, поместите ее в цикл, который запускает ее несколько тысяч раз.
JavaScript записывает время в миллисекундах, поэтому вы не сможете получить время с такой точностью. The smart-aleck ответ "умножить на 1,000,000".
да! Попробуйте отличный sazze это нано-времени
let now = require('nano-time');
now(); // '1476742925219947761' (returns as string due to JS limitation)