0

timeNow私はjavascriptで 現在の時刻を取得しようとしており、スクリプトの最後にtimeEndスクリプトの実行が終了した時刻を取得しようとしています。たとえば、次のようになります。

newDate = new Date();
timeNow = newDate.getTime();

for(i=0; i < 5; i ++){

    console.log("printing" + i);
}

timeEnd = timeNow - newDate.getTime();

console.log(timeEnd);

このスクリプトの実行にかかった時間を秒またはミリ秒で取得したいのですが、結果は 0 です。理由がわかりません。ありがとうございます。

4

7 に答える 7

5

Dateオブジェクトは一度構築されると刻々と動き続けるわけではなく、時間内の 1 つの瞬間を表すだけです。

スクリプトの最後で時間を再評価し、その値を最初の値と比較する必要があります。

最新の ES5 ブラウザーでは、「静的」Date.now()関数を使用して現在の時刻を取得できることに注意してください。Dateこれは、まったく新しいオブジェクトを構築するよりも安価です。古いブラウザーでは、このシムを使用してこの関数をエミュレートできます。

Date.now = Date.now || function() {
    return +(new Date);
};

その時点で、必要なコードは次のようになります。

var start = Date.now();

// do your stuff here
...

var end = Date.now();

var elapsed = end - start;

FWIW、ラップトップの Chrome コンソールで実行すると、単純なループが 2ms と報告されます。

于 2012-08-23T16:44:22.077 に答える
2

これは、Dateオブジェクトを 1 つしか作成しないために発生します。これらは変わりません。あなたがしなければならないでしょう:

timeEnd = timeNow - new Date().getTime();

new(との間の空白に注意してくださいDate)

于 2012-08-23T16:45:23.543 に答える
1
var t = new Date().getTime();
// code
console.log(new Date().getTime() - t);
于 2012-08-23T16:45:57.193 に答える
0

5回の反復を実行するのに1ミリ秒もかからないので、私は想像します。

于 2012-08-23T16:43:38.200 に答える
0

基本的に、これを行います

newDate = new Date();
timeNow = newDate.getTime();

for(i=0; i < 50; i++){
    console.log("printing" + i);
}

futureDate = new Date()
timeEnd =  futureDate.getTime();
timeLength = timeEnd - timeNow;


console.log(timeLength);
于 2012-08-23T16:56:15.053 に答える
0

あなたが使用することができます

starttime = Number(新しい日付());

endtime = Number(新しい日付());

于 2012-08-23T16:45:13.190 に答える
0

実際、1ミリ秒未満で反復しているとは思いません。newDate.getTime()問題は、繰り返し呼び出すと毎回同じ値が返されることだと思います。オブジェクトは、一度作成すると、作成された時点で設定されます。Date()元のオブジェクトと比較するには、新しいオブジェクトを作成する必要があります。

私の Firebug コンソールから:

>>> d = new Date()
Date {Thu Aug 23 2012 10:45:52 GMT-0600 (Mountain Daylight Time)}
>>> d.getTime()
1345740352582
>>> d.getTime()
1345740352582
>>> d.getTime()
1345740352582
>>> d.getTime()
1345740352582

d.getTime()1ミリ秒もかからずに を手動で呼び出したわけではありません。

于 2012-08-23T16:45:43.430 に答える