discord.js如何获取当日星期信息 修复!today指令代码
Discord星期识别机器人!today指令修复方案
原代码问题点
- 基础语法错误:JavaScript条件判断关键字为小写
if,原代码使用大写开头的If会直接抛出语法错误,代码无法运行 - 缺少日期获取逻辑:原代码中
Today is Sunday属于自然语言描述,不是合法的JavaScript判断表达式,没有实际获取当前系统星期的能力 - 判断规则不严谨:直接硬编码字符串匹配星期名,很容易出现大小写、拼写不匹配导致判断失效的问题
修复实现
使用JavaScript原生Date对象的getDay()方法获取当前星期,该方法返回0-6的整数,不存在字符串匹配的兼容问题:
- 返回值0:对应周日
- 返回值1:对应周一
- 返回值2-6:依次对应周二至周六
修复后可正常运行的代码:
client.on("message", msg => { // trim()用来忽略用户输入指令前后的多余空格,避免误判 if (msg.content.trim() === "!today") { const currentWeekDay = new Date().getDay(); if (currentWeekDay === 0) { msg.reply("Time to Holiday"); } else if (currentWeekDay === 1) { msg.reply("Time to work"); } // 若需要给其他星期设置回复,在此处追加else if判断即可 } });
注意:如果你使用的是v13及以上版本的discord.js,需要先在机器人开发者后台开启Message Content Intent(消息内容权限),否则机器人无法监听到普通文本消息,!today指令不会触发。
内容的提问来源于stack exchange,提问作者Nevada
相关产品推荐
相关产品推荐

