#python #datetime #discord.py
#python #datetime #discord.py
Вопрос:
У меня есть бот discord, который может забанить участников из гильдий, и я хотел создать систему временных запретов, при которой пользователь забанен, проходит определенное количество времени, а затем он не забанен. Моя текущая система
await user.ban(reason=reason)
await asyncio.sleep(duration)
await user.unban()
Это работает отлично, без каких-либо проблем, кроме того, что при перезапуске бота пользователь никогда не будет отключен, поскольку таймер никогда не завершается.
Я думаю об использовании datetime
и сохранении времени, которое они получают либо «время отмены запрета», либо «время запрета и продолжительность», но я не могу понять, как добавить / вычесть продолжительность из datetime
, а также как сравнить даты и время, чтобы узнать, истекло ли время.
Пожалуйста, кто-нибудь может мне помочь и сообщить, как управлять datetime.
Ответ №1:
Модуль Python datetime
включает timedelta
объекты для обработки смещений, как вы описываете. Например, если вы хотите определить время через 10 секунд прямо сейчас:
>>> from datetime import datetime, timedelta
>>> datetime.today() timedelta(seconds=10)
datetime.datetime(2021, 1, 29, 10, 15, 7, 675717)
Комментарии:
1. Отлично, я думаю, вы могли бы просто использовать «>» для сравнения 2 datetimes, чтобы проверить, истекло ли время?