In einer Django-Website, die ich pflege, muss ich überprüfen, ob sich Benutzer während bestimmter Zeitfenster jeden Tag angemeldet (und eine bestimmte Aufgabe ausgeführt) haben. Diese Zeitfenster sind festgelegt und wiederholen sich täglich. Zum Beispiel Fenster # 1 zwischen 03.00 und 06.30 (einschließlich), während Fenster # 2 ist 11.50 und 2: 45P M (einschließlich).Zeitvergleich in Python
Immer wenn ein Benutzer auf die Website zurückkehrt, erhalte ich time_now = datetime.datetime.now()
. Und da mir nur die Zeit wichtig ist, benutze ich time_now.time()
. Als nächstes muss ich überprüfen, ob time_now.time()
in eines der oben genannten Zeitfenster fällt.
Ich bin mir nicht sicher, wie man diesen Vergleich in Python macht. Insbesondere, wie definiere ich die Zeitobjekte, die die Zeitfenster steuern? Wird es etwas wie sein:
time_now = datetime.datetime.now()
now = time_now.time()
today3am = now.replace(hour=3, minute=0, second=0, microsecond=0)
today630am = now.replace(hour=6, minute=30, second=0, microsecond=0)
if today3am < now < today630am:
#do something
(und ebenso für das zweite Zeitfenster).
Bitte geben Sie an, ob dies der richtige Weg ist oder nicht. Alternativ sind auch bessere Methoden (performance-weise) willkommen.
Aus irgendeinem Grund gibt 'datetime.time (hour = 3, minute = 0) 'mir ** descriptor' time 'von' datetime.datetime 'ein Objekt benötigt ein Argument ** –
Wenn Sie' datetime 'dann importieren Sie können 'datetime.datetime' und' datetime.time' verwenden. Sie erhalten diesen Fehler, wenn Sie 'from datetime import datetime' eingeben. – AKS
Bekam es, danke @AKS. –