【问题标题】:Timer not working when using readline-sync (Javascript)使用 readline-sync (Javascript) 时定时器不工作
【发布时间】:2020-07-19 09:15:47
【问题描述】:

我正在制作一个游戏来记录你完成游戏所花费的时间,但是我意识到当我要求输入时计时器不会继续。我尝试在输入输入之前等待 10 秒,但在我输入之后输入一个值,时间是 00:00。我必须为计时器创建一个单独的文件,或者是否有可能的方法让计时器运行。请帮忙谢谢!

var readline = require('readline-sync');
seconds = 0;
minute = 0;

timer = setInterval(() => {

    if (seconds == 60) {
        seconds = 0;
        minute++;
    }
    
    seconds++;

}, 1000);

var input = readline.question('Input:');

clearInterval(timer);

//String to show time
if (minute < 10 && seconds < 10)
time = '0' + minute + ':0' + seconds;
else if (minute < 10 && seconds >= 10)
time = '0' + minute + ':' + seconds;
else if (minute >= 10 && seconds < 10)
time = minute + ':0' + seconds;
else 
time = minute + ':' + seconds;

console.log(time);

【问题讨论】:

    标签: javascript timer


    【解决方案1】:

    使用new Date() 创建一个 Date 对象并从用户输入后创建的另一个 Date 中减去它会更容易。

    var dateStart = new Date();
    var input = readline.question('Input:');
    var difference = new Date() - dateStart(); // time elapsed in milliseconds
    

    对于更复杂的情况,我建议查找库 moment.js 或 date-fns。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2023-02-06
      • 2012-05-17
      相关资源
      最近更新 更多