简体   繁体   English

将 discord.py 中的冷却时间转换为 hrs:min:sec 格式

[英]Convert cooldown timer in discord.py into hrs:min:sec format

I have a bot made using discord.py.我有一个使用 discord.py 制作的机器人。 I added a suggest command and added cooldown to it.我添加了一个建议命令并为其添加了冷却时间。 After that I added this code:之后,我添加了以下代码:

@suggest.error
async def suggest_error(ctx, error):
    if isinstance(error, commands.CommandOnCooldown):
        msg = 'You are too fast! Please try again in {:.2f}s'.format(error.retry_after)
        await ctx.send(msg)
    else:
        raise error

Now, it shows the time in seconds, how do I make it show in hr:min:sec format?现在,它以秒为单位显示时间,如何让它以 hr:min:sec 格式显示?

You can do it using the datetime module您可以使用 datetime 模块来完成

import datetime

remaining_time = str(datetime.timedelta(seconds=int(error.retry_after)))
def hms_from_secs(seconds: int) -> str:
    seconds = int(seconds)
    hours = seconds // 3600
    minutes = (seconds % 3600) // 60
    seconds = seconds % 60
    return f"{hours:02} hour(s) {minutes:02} minute(s)"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM