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

discord.py命令冷却报错时如何将剩余秒数转换为分钟或小时格式

discord.py 命令冷却时间格式化实现方案

核心逻辑是将error.retry_after返回的浮点型剩余秒数做单位转换,根据数值大小自动匹配小时、分钟、秒的输出格式。

以下是修改后的全局命令错误处理代码,可直接替换原有逻辑:

@client.event
async def on_command_error(ctx,error):
  if isinstance(error , commands.CommandOnCooldown):
    # 取整剩余秒数避免小数显示
    remaining_sec = int(error.retry_after)
    # 自动匹配时间单位
    if remaining_sec >= 3600:
        time_display = f"{remaining_sec // 3600}小时"
    elif remaining_sec >= 60:
        time_display = f"{remaining_sec // 60}分钟"
    else:
        time_display = f"{remaining_sec}秒"
    await ctx.send(f'{ctx.author.mention}**hold your horses buddy <:iac_namaste:841266597318361098>**')
    await ctx.send(f'请{time_display}后再试')

如果需要更精细的多单位显示(例如剩余1小时20分钟30秒),可以替换时间转换部分的逻辑:

remaining_sec = int(error.retry_after)
hours = remaining_sec // 3600
minutes = (remaining_sec % 3600) // 60
seconds = remaining_sec % 60
time_parts = []
if hours:
    time_parts.append(f"{hours}小时")
if minutes:
    time_parts.append(f"{minutes}分钟")
if seconds:
    time_parts.append(f"{seconds}秒")
time_display = "".join(time_parts)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:24:05