如何在discord.py中开发查看机器人uptime运行时长的命令?
机器人运行时长(uptime)命令实现方案
核心实现逻辑
- 启动机器人时记录当前时间戳,存入全局变量/本地文件/数据库,避免进程重启后时长重置
- 调用uptime查询命令时,用当前时间戳减去启动时间戳,得到累计运行的总秒数
- 将总秒数换算为小时、分钟、秒三个单位:
- 小时数 = 总秒数 // 3600
- 剩余秒数 = 总秒数 % 3600
- 分钟数 = 剩余秒数 // 60
- 最终秒数 = 剩余秒数 % 60
- 按要求格式化输出字符串即可
代码示例(Python)
import time # 机器人启动时执行一次,记录启动时间 BOOT_TIMESTAMP = time.time() def get_robot_uptime(): total_run_seconds = int(time.time() - BOOT_TIMESTAMP) hours = total_run_seconds // 3600 left_seconds = total_run_seconds % 3600 mins = left_seconds // 60 secs = left_seconds % 60 # 中文输出格式 return f"在线时长:{hours}小时{mins}分{secs}秒" # 如需英文格式,替换为下面的返回语句 # return f"Online Time: {hours}h {mins}m {secs}s" # 调用示例 if __name__ == "__main__": print(get_robot_uptime())
输出效果
中文输出示例:在线时长:1小时10分15秒
英文输出示例:Online Time: 1h 10m 15s
注意事项
- 若机器人支持热重启,建议将启动时间持久化存储到本地文件或数据库,启动时优先读取已存储的启动时间,避免时长统计中断
- 跨时区部署时统一使用UTC时间戳计算,避免时区差异导致时长计算错误
内容的提问来源于stack exchange,提问作者user15016878
相关产品推荐
相关产品推荐

