如何衡量Javascript过去的时间?

Leo*_*ard 44 javascript

我创建了一个简单的游戏,用户需要点击框.当用户完成点击16个框时,游戏结束.

我想测量用户完成游戏所用的时间.我如何使用Javascript做到这一点?

我看了不同的答案,但我很难理解自定义代码.

计时器开始:当用户点击第一个框时

计时器结束:当用户点击最后一个框时

Wee*_*oze 105

单击开始按钮,然后单击结束按钮.它会显示2次点击之间的秒数.

毫秒diff是变量Date.玩它来寻找秒/分钟/小时/或你需要的东西

var startTime, endTime;

function start() {
  startTime = new Date();
};

function end() {
  endTime = new Date();
  var timeDiff = endTime - startTime; //in ms
  // strip the ms
  timeDiff /= 1000;

  // get seconds 
  var seconds = Math.round(timeDiff);
  console.log(seconds + " seconds");
}
Run Code Online (Sandbox Code Playgroud)
<button onclick="start()">Start</button>

<button onclick="end()">End</button>
Run Code Online (Sandbox Code Playgroud)

  • 这根本不可靠。在现代浏览器中,最好的选择是使用“performance.now()”来测量两个瞬间之间的持续时间。在上面的答案中,将“new Date()”替换为“performance.now()”。https://developer.mozilla.org/en-US/docs/Web/API/Performance/now (2认同)
  • 这里也有类似的问题(这里被标记为重复)。不幸的是,并非所有这些都指向正确的方向。由于我无法添加答案,我想警告来这里的人。简而言之,使用 new Date() 并不可靠,因为它受到系统时钟的影响。它可能会导致其他意外输出中的负持续时间。请参阅此答案以获得更长的咆哮/sf/answers/1094899921/。请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#Examples 中有关计算经过时间的说明。 (2认同)