You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py每日命令冷却:如何正确显示剩余小时与分钟?

解决Discord.py每日命令冷却提示的小时/分钟计算问题

我看到你在基于discord.py开发机器人的每日命令冷却功能时,卡在了剩余时间的小时数和分钟数计算上——咱们来快速搞定这个问题!

问题根源

你当前的代码里,minutes = str(cd % 60)这一行是错误的:cd % 60得到的是总秒数减去整数小时后剩余的秒数,而不是分钟数。这就导致你的分钟显示完全不对啦。

修正后的代码逻辑

正确的计算步骤应该是:

  1. 先从总剩余秒数中算出完整的小时数
  2. 用剩余的秒数计算完整的分钟数

下面是修正后的daily_error函数代码:

@daily.error
async def daily_error(self, ctx, error):
    if isinstance(error, commands.CommandOnCooldown):
        embed = discord.Embed(
            title="You're on a cooldown!",
            color=discord.Color.blue()
        )
        cd = round(error.retry_after)
        # 计算完整小时数
        hours = cd // 3600
        # 计算扣除小时后剩余的秒数
        remaining_after_hours = cd % 3600
        # 用剩余秒数计算完整分钟数
        minutes = remaining_after_hours // 60
        
        embed.add_field(
            name="\u200b",
            value= f"Slow down will ya?\n Wait for `{self.leadingZero(str(hours))}hours{self.leadingZero(str(minutes))}minutes`"
        )
        await ctx.send(embed=embed)

额外说明

  • 假设你的leadingZero函数是用来给单个数字补前导零的(比如把5变成05),那这个部分不用改动,它能让时间显示更规整。
  • 如果之后需要显示剩余秒数,你可以再加一行seconds = remaining_after_hours % 60,然后把它加入提示文本即可。

这样修改后,冷却提示就能准确显示剩余的小时数和分钟数啦!

内容的提问来源于stack exchange,提问作者JoeTheMama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 17:47:31