Node.jsで最も正確なタイムスタンプを取得するにはどうすればよいですか?
ps Node.jsの私のバージョンは0.8.Xであり、node-microtime拡張機能が機能しません(インストール時にクラッシュします)
Node.jsで最も正確なタイムスタンプを取得するにはどうすればよいですか?
ps Node.jsの私のバージョンは0.8.Xであり、node-microtime拡張機能が機能しません(インストール時にクラッシュします)
new Date().getTime()
?これにより、ミリ秒単位のタイムスタンプが得られます。これは、JSが提供する最も正確なタイムスタンプです。
更新:vaughanprocess.hrtime()
が述べているように、Node.js内で利用可能です-その解像度はナノ秒であるため、はるかに高くなります。この関数は[seconds, nanoseconds]
、現在のリアルタイムの高解像度値を含む配列を返しますが、特定のクロックに関連付けられていないことに注意してください。つまり、2つの連続する値の差は経過時間を示しますが、個々の値は意味を示しません。
また、ノードv10の時点で、process.hrtime()
「レガシー」とマークされておりprocess.hrtime.bigint()
、代わりに使用する必要があることに注意してください。これにより、配列ではなく単一のBigInt番号が生成されます。
https://github.com/wadey/node-microtimeもあります:
> var microtime = require('microtime')
> microtime.now()
1297448895297028
よりも高い精度で作業するにはDate.now()
、浮動小数点精度でミリ秒を使用します。
function getTimeMSFloat() {
var hrtime = process.hrtime();
return ( hrtime[0] * 1000000 + hrtime[1] / 1000 ) / 1000;
}
システムの gettimeofday() 関数にバインドする npm パッケージがあり、Linux でマイクロ秒精度のタイムスタンプを返します。npm を検索しますgettimeofday
。C の呼び出しはより高速です。process.hrtime()
より良い?
Number(process.hrtime().join(''))