如何制作命令时间计数器

时间:2018-11-27 14:04:03

标签: discord.js

我的问题是:我如何在discord.js中制作命令时钟(执行!count并在4分钟后键入!time并显示4分钟!)

const Discord = require('discord.js');

exports.run = (client, message) => {
  var af = 0;

  a = setInterval(function(){
  console.log("Hi");
  af = af+1;

   if(af == 25){
     clearInterval(a);
  }
  console.log(af);
  }, 60000);
};

exports.help = {
  name: 'time',
  description: 'time?',
  usage: 'time'
};

1 个答案:

答案 0 :(得分:1)

我会这样做:执行!count可以节省服务器时间,而执行!time则可以将这两个日期之间的差发送回去。

伪代码:

var date;

if (command == 'count') {
  date = new Date();
  message.reply("Done");
}

if (command == 'time') {
  let result = require('pretty-ms')(date ? (new Date() - date) : 0);
  message.reply(result);
}

我正在使用pretty-ms npm软件包来设置毫秒格式:docs & live demo

有人致电!count时,请将当前日期存储在某处。 new Date() - date将为您提供当前时间和您存储的时间之间的时差,以毫秒为单位。
请注意,如果命令位于不同的文件中(如所发布的代码所示),则需要将日期存储在两个文件均可访问的位置:解决方案之一是将日期存储为全局变量。

// by '...' I mean that you can put it wherever you want in the global object
global['...'].date = new Date():
new Date() - global['...'].date

编辑:Date类说明
创建新的Date时,它可以节省创建时间。这就像说!count是在04:20” 执行的。如果要检查已过去了多少时间,则需要计算第一个日期减去当前日期:!count是在04:20执行的。现在是05:40,所以区别是{ {1}}:距您第一次执行05:40 - 04:20 = 01:20以来已过了1小时20分钟。即为!count
由于日期以毫秒为单位存储,因此差异以毫秒为单位:如果要使其更具可读性,则可以使用new Date() - past_date = time_passed包或类似的函数来格式化日期。
关键概念是:

  • 调用'pretty-ms'时,您保存了!count来锁定该时间点
  • 调用new Date()时,您可以通过执行!time
  • 获得区别