日期篩選

django.utils timezone搭配timedelta的使用達到時間的加減以及運算

沒有留言
如果我們想要實作時間的加減

可以透過timedelta

今天我想要把一組現在的時間+上一分鐘來當作我的驗證失效時間

我們可以這樣做

首先

在我們的settings.py中宣告timezone啟用的設定

setting.py

USE_TZ = True

接著在程式碼當中提出實體,並透過timedelta做運算

due_time = timezone.now() + timezone.timedelta(seconds=60)

這樣due_time就會是現在時間加一分鐘

若套用在models上面則是

due_date = models.DateTimeField('due date', default=timezone.now()+ timezone.timedelta(seconds=60), editable=False)

當最後需要運算的時候判斷是否超過一分鐘
當timezone.now()-due_date後取得的事timedelta的實體

if((timezone.now()-due_date).seconds > 60):
    print("verify fail!!!")
else:
    do something

大功告成

特別要注意timedelta能做加減的型態

要實作分鐘的話就用秒數*60去實作囉

因為沒提供minutes或是hour

可以去官方document看看

AttributeValue
daysBetween -999999999 and 999999999 inclusive
secondsBetween 0 and 86399 inclusive
microsecondsBetween 0 and 999999 inclusive

沒有留言 :

張貼留言

技術提供:Blogger.

Pages

FACEBOOK