112

Node.jsで最も正確なタイムスタンプを取得するにはどうすればよいですか?

ps Node.jsの私のバージョンは0.8.Xであり、node-microtime拡張機能が機能しません(インストール時にクラッシュします)

4

14 に答える 14

119

new Date().getTime()?これにより、ミリ秒単位のタイムスタンプが得られます。これは、JSが提供する最も正確なタイムスタンプです。

更新:vaughanprocess.hrtime()が述べているように、Node.js内で利用可能です-その解像度はナノ秒であるため、はるかに高くなります。この関数は[seconds, nanoseconds]、現在のリアルタイムの高解像度値を含む配列を返しますが、特定のクロックに関連付けられていないことに注意してください。つまり、2つの連続する値のは経過時間を示しますが、個々の値は意味を示しません。

また、ノードv10の時点で、process.hrtime()「レガシー」とマークされておりprocess.hrtime.bigint()、代わりに使用する必要があることに注意してください。これにより、配列ではなく単一のBigInt番号が生成されます。

于 2012-07-30T16:34:15.870 に答える
8

https://github.com/wadey/node-microtimeもあります:

> var microtime = require('microtime')
> microtime.now()
1297448895297028
于 2015-09-29T16:40:27.343 に答える
2

よりも高い精度で作業するにはDate.now()、浮動小数点精度でミリ秒を使用します。

function getTimeMSFloat() {
    var hrtime = process.hrtime();
    return ( hrtime[0] * 1000000 + hrtime[1] / 1000 ) / 1000;
}
于 2015-10-30T11:38:27.587 に答える
-1

システムの gettimeofday() 関数にバインドする npm パッケージがあり、Linux でマイクロ秒精度のタイムスタンプを返します。npm を検索しますgettimeofday。C の呼び出しはより高速です。process.hrtime()

于 2015-09-10T23:22:26.860 に答える
-10

より良い?

Number(process.hrtime().join(''))
于 2018-02-27T16:34:52.323 に答える