Donc, je sais que je peux obtenir l'heure actuelle en millisecondes en utilisant JavaScript. Mais, est-il possible d'obtenir l'heure actuelle en nanosecondes à la place?
Obtenez une précision en microsecondes dans la plupart des navigateurs en utilisant:
window.performance.now()
Voir également:
En s'appuyant sur la réponse de Jeffery, pour obtenir un horodatage absolu (comme le souhaitait l'OP), le code serait:
var TS = window.performance.timing.navigationStart + window.performance.now();
le résultat est exprimé en millisecondes mais correspond à une valeur à virgule flottante "précise au millième de milliseconde".
Dans les environnements côté serveur comme Node.js, vous pouvez utiliser la fonction suivante pour obtenir du temps en nanosecondes
function getNanoSecTime() {
var hrTime = process.hrtime();
return hrTime[0] * 1000000000 + hrTime[1];
}
Obtenez également des micro secondes de la même manière:
function getMicSecTime() {
var hrTime = process.hrtime();
return hrTime[0] * 1000000 + parseInt(hrTime[1] / 1000);
}
Non. Il n'y a aucune chance que vous obteniez une précision en nanosecondes sur la couche JavaScript.
Si vous essayez de comparer une opération très rapide, mettez-la dans une boucle qui l'exécute plusieurs milliers de fois.
JavaScript enregistre le temps en millisecondes, vous ne pourrez donc pas obtenir le temps avec cette précision. La réponse smart-aleck est de "multiplier par 1 000 000".
Oui! Essayez l'excellent sazze nano-time
let now = require('nano-time');
now(); // '1476742925219947761' (returns as string due to JS limitation)