【问题标题】:Why my condition execs always the first option?为什么我的条件执行总是首选?
【发布时间】:2021-01-12 15:12:50
【问题描述】:

我将此条件与小时和分钟相关,但无论何时使用它都无关紧要,它始终会执行第一个选项。

case "salecs":

  let dt = new Date();
  let hr = dt.getHours();
  let min = dt.getMinutes();
  let tie = `${hr}${min}`;
  let ti = parseInt(tie);

  if (ti < 1429 && ti > 1229) {
    message.reply('https://es.wikipedia.org/wiki/Almuerzo')
  }else if (ti < 2129 && ti > 2029) {
      message.reply('https://es.wikipedia.org/wiki/Cena')
  }else
    message.channel.send('Salen esos tiritos? \nht \n@everyone');
  break;

【问题讨论】:

  • 它为我运行第三个选项,尽管您在最后一个 else 上缺少大括号
  • 您是否尝试记录 ti 并在运行时查看它包含的值?
  • @pilchard 哦,对不起,我忘了把它放在这里,但它在代码中
  • @Ivar 来自服务器控制台,它说它是 145

标签: javascript json discord discord.js


【解决方案1】:

您的代码运行良好,我通过将值附加到字符串变量在下面添加了一个示例,也许您在错误的时间对其进行了测试,您将不得不修改时间以获得有效的输出。我还添加了我根据需要更新时间的示例。

function getStr(ti) {
  let str = "";
  if (ti < 1429 && ti > 1229) {
    str = 'https://es.wikipedia.org/wiki/Almuerzo';
  } else if (ti < 2129 && ti > 2029) {
    str = 'https://es.wikipedia.org/wiki/Cena';
  } else
    str = 'Salen esos tiritos? \nht \n@everyone';
  return str;
}

console.log(getStr(1233));
console.log(getStr(2030));
console.log(getStr(1111));

let dt = new Date();
let hr = dt.getHours();
let min = dt.getMinutes();
let tie = `${hr}${min}`;
let ti = parseInt(tie);

console.log(getStr(ti));
dt = new Date();
hr = dt.getHours(dt.setHours(14));
min = dt.getMinutes(dt.setMinutes(20));
tie = `${hr}${min}`;
ti = parseInt(tie);
console.log(getStr(ti));

dt = new Date();
hr = dt.getHours(dt.setHours(20));
min = dt.getMinutes(dt.setMinutes(40));
tie = `${hr}${min}`;
ti = parseInt(tie);
console.log(getStr(ti));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-09
    • 2015-03-05
    • 2017-12-17
    • 2019-11-05
    • 2020-10-13
    • 2023-03-14
    • 2019-12-15
    相关资源
    最近更新 更多